介绍

ApacheKylin主要使用HBase来存储多维数据集数据。HBase集群的性能直接影响着Kylin的查询性能。在常见的场景中,HBase与mr/hive一起部署在一个HDFS集群上,这使得所使用的资源受到限制,mr作业会影响HBase的性能。这些问题可以通过独立的HBase集群来解决,ApacheKylin目前支持这种部署模式。

环境要求

要启用独立的HBase群集支持,请首先检查基本环境:
部署主集群和HBase集群,确保两个集群都正常工作

确保Kylin服务器可以使用具有完全限定路径的HDFS shell访问两个集群。

确保Kylin服务器可以将mr作业提交到主集群,并且可以使用hive shell访问数据仓库,确保hadoop和hive的配置指向主集群。

确保Kylin服务器可以使用hbase shell访问hbase集群,确保hbase的配置指向hbase集群。

确保主集群上的作业可以直接访问HBase集群

 

配置

更新kylin.properties中的config kylin.hbase.cluster.fs,其值为hbase cluster的名称节点地址,如hdfs://hbase-cluster-nn01.example.com:8020

请注意,该值应与hbase主节点上root.dir的namenode地址保持一致,以确保批量加载到hbase中。

 

启用NN HA

hdfs-namenode-ha显著提高了集群的可用性,可能是hbase集群启用了它。

要在hbase集群上启用nn-ha,请在kylin.properties中将kylin.hbase.cluster.fs设置为hbase集群的nn-ha格式路径,如hdfs://hbase cluster:8020。

由于多维数据集构建的mr作业同时访问主集群和hbase集群,因此在任务运行期间可能会引发异常。原因是任务需要使用与NN-HA相关的配置访问HBase集群,而这些配置通常不部署在主集群中。

这些异常可以通过配置更新来解决。详细地说,合并两个集群的NN-HA相关配置,包括df.nameservices、df.ha.namenodes.、df.client.failover.proxy.provider。以及其他相关的。这些配置应该更新到Kylin服务器的hdfs-site.xml和主集群的资源管理器中,也应该添加到Kylin_job_conf.xml中。

但是,在生产环境中更新配置可能很困难。以下是避免配置更新的另一种方法:

使用补丁hbase-14347更新Kylin服务器中的hbase客户端,并在hbase-site.xml中设置hbase.use.dynamic.jar=false

使用补丁kylin-1910更新kylin服务器,并在kylin.properties中设置kylin.hbase.cluster.hdfs.config.file=hbase.hdfs.xml。hbase.hdfs.xml表示hbase集群的hdfs-site.xml,将其放在kylin.properties的同一目录中。

用补丁yarn-3021更新Kylin服务器和资源管理器的hadoop

故障排除

多维数据集生成期间发生未知的异常

它通常出现在hbase ha nameservice配置中,请参阅上面的“启用nn ha”部分。

“在Kylin服务器启动期间打开连接HBase时出错”

在连接设置期间,hbase尝试在hdfs上mkdir tmp dirs,但由于缺少与nn-ha相关的配置而失败,请参阅“启用nn-ha”

未能提交多维数据集生成作业

hbase群集路径将在生成多维数据集生成作业期间分析,由于缺少与nn-ha相关的配置而失败,请参阅“启用nn-ha”

多维数据集生成步骤“将立方体数据转换为hfile”失败

通常发生在Kerberos身份验证中。资源管理器在提交作业时尝试续订所有令牌,HBase群集令牌的续订将失败,缺少与nn-ha相关的配置,请参阅“启用nn-ha”

H长期散装货物装卸

检查区域服务器日志,应该有很多错误日志,有错误的例外。确保kylin.properites/kylin.hbase.cluster.fs和hbase主节点hbase-site.xml/root.dir中的名称节点地址相同