一起作业Kylin应用之读写分离与高可用

Posted 17聊技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起作业Kylin应用之读写分离与高可用相关的知识,希望对你有一定的参考价值。

前面那篇文章介绍了潘多拉系统目前的架构----Hbase独立集群+Kylin高可用,这篇主要来聊聊这个架构的搭建步骤和遇到的问题。

如上图所示,潘多拉系统主要由Hbase集群、kylin集群、Hadoop集群和saiku集群组成。


Hbase集群:6台机器,2个master(主、备)实例,6个region server实例

Kylin集群:2个实例,与hbase集群部署在同一物理集群上,其中1个model=all,另一个model=query,nginx作为LB

Hadoop集群:超过50台机器,为kylin提供源数据及MR计算

Saiku集群:2台机器,nginx作为LB,负载均衡算法为轮询

一、环境确认

在正式搭建集群之前,需要先确认如下几点:

1、Hbase集群和Hadoop集群是否能互相访问。因为Hadoop集群要提交数据至Hbase集群,所以要求能互相访问;

2、Kylin集群能通过hbase shell访问Hbase集群,能提交MR至Hadoop集群。由于系统对查询的延时性要求较高,应使Kylin集群和Hbase集群在网络上尽量靠近,所以最好将Kylin集群和Hbase集群搭建在同一个物理机集群上;

3、Hbase集群和Hadoop集群的Hadoop核心版本一致。在命令行输入 hadoop version ,即可显示hadoop的版本。

一起作业Kylin应用之读写分离与高可用

图二 hadoop版本

以上问题都确认好之后,就可以着手搭建了。


二、搭建过程

1、hbase集群、hadoop集群中每台机器都添加全部的hosts信息,确保任意机器到任意机器能通过主机名ping通;

2、将hadoop集群上 /etc/hive/conf/ 下的配置文件拷贝至hbase集群的 /etc/hive/conf/ 和 /etc/hbase/conf/ 目录下。需要拷贝的配置文件列表如下:

一起作业Kylin应用之读写分离与高可用

拷贝完的文件列表如下所示:

一起作业Kylin应用之读写分离与高可用

图三Hive配置文件


一起作业Kylin应用之读写分离与高可用

图四Hbase 配置文件


3、部署kylin实例,修改kylin.properties。

修改好的两份kylin.properties,除了kyin.server.mode不同之外,其余部分应保持一致。

4、修改nginx.conf,将两台kylin实例加入upstream kylins中,修改监听的端口号,配置proxy_pass路径,如下图所示。

图五 nginx.conf配置文件


5、Saiku集群配置。过程基本同上,略。


三、确认

上述过程完成了,可以开始验证kylin的读写分离是否搭建成功。

2、Kylindata source能看到hadoop集群上的库、表;

3、Buildcube,观察MR是否提交至hadoop集群运行;

4、Build产生的hfile能否存储至hbase集群;

5、Build完后saiku能否顺利查询数据。


四、遇到的问题及解决

1、kylin build过程报错,错误内容为找不到主机名。

A:检查提示找不到的主机名是否添加至hbase集群中。

2、kylin不能从hadoop集群上读取表。

A:确认 /etc/hive/conf 配置文件都拷贝全并放到正确路径。

3、kylin build过程MR提交失败,提示权限问题。

A:如果hadoop集群设置了任务提交队列,可以新建队列中的用户,以该用户启动kylin。

4、hbase文件路径不能访问。

A:修改集群上的hbase文件权限。


以上是关于一起作业Kylin应用之读写分离与高可用的主要内容,如果未能解决你的问题,请参考以下文章

高性能高可用MySQL主从复制读写分离与高可用配置

Mycat - 实现数据库的读写分离与高可用

Mycat - 实现数据库的读写分离与高可用

kylin跨集群配置实现读写分离

实战部署Kylin读写分离

数据库之架构:主备+分库?主从+读写分离?