一起作业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的版本。
图二 hadoop版本
以上问题都确认好之后,就可以着手搭建了。
二、搭建过程
1、hbase集群、hadoop集群中每台机器都添加全部的hosts信息,确保任意机器到任意机器能通过主机名ping通;
2、将hadoop集群上 /etc/hive/conf/ 下的配置文件拷贝至hbase集群的 /etc/hive/conf/ 和 /etc/hbase/conf/ 目录下。需要拷贝的配置文件列表如下:
拷贝完的文件列表如下所示:
图三Hive配置文件
图四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应用之读写分离与高可用的主要内容,如果未能解决你的问题,请参考以下文章