多个Kylin共用一套HBase和Hadoop解决方案

在项目中有时代码开发分为开发环境和生产环境,kylin虽然支持多个project,但是每个project中的model不能同名,就造成了需要多个kylin集群来适配不同的代码环境。又因为kylin依赖hbase,hive,hdfs,zookeeper,spark这些组件,再完整弄一套集群过于麻烦。故此文给出一种解决方案。

所使用的kylin版本为2.6.4
首先kylin的主要配置文件为$KYLIN_HOME/kylin.properties,本文并不会详解其中的所有配置,只会拿出我们需要的配置进行操作。
注意,安装新kylin的机器上需要配备hbase,hive,hadoop,spark,zookeeper的客户端。且环境变量中各自的*_HOME要配置好。

  1. kylin.metadata.url
    此配置为kylin在hbase上存储元数据的路径。
    默认值为kylin.metadata.url=kylin_metadata@hbase
    其中kylin_metadata为kylin在hbase中建的元数据表,在hbase的default的命名空间下。
    这里我们可以修改为其他值,与之区分开,例如kylin.metadata.url=cluster01:kylin_metadata@hbase,这里的cluster_prd为新kylin集群在hbase上存储元数据的命名空间,与之前集群的命名空间default区分开,即元数据存储在不同的位置。
    注意:kylin并不会在hbase上创建cluster01的命名空间,需要自己创建,create_namespace 'cluster01'
  2. kylin.env.hdfs-working-dir
    此配置是kylin在hdfs上的工作路径。
    默认值为kylin.env.hdfs-working-dir=/kylin。我们可以通过hdfs dfs -ls /kylin看到此路径中存储的数据。
    这里我们设为其他值,例如kylin.env.hdfs-working-dir=/kylin01
  3. kylin.env.zookeeper-base-path
    此配置是kylin在zookeeper上的路径,默认为kylin.env.hdfs-working-dir=/kylin
    我们修改为kylin.env.hdfs-working-dir=/kylin01
  4. kylin.storage.hbase.namespace
    此配置指定 hbase 存储默认的 namespace,默认值为 default。
    我们可以修改为kylin.storage.hbase.namespace=cluster01,注意,需要和第一个配置的命名空间保持一致。
  5. kylin.source.hive.database-for-flat-table
    此配置指定存放kylin计算时产生的中间表存放在 hive中的 hive 数据库名字,默认值为kylin.source.hive.database-for-flat-table=default,请确保启动 Kylin 实例的用户有操作该数据库的权限。
    我们可以修改为kylin.source.hive.database-for-flat-table=cluster01
    注意:kylin并不会在hive上创建cluster01的数据库,需要自己创建,create database cluster01;

上面这五个参数配置完即可实现多个kylin共用一套hbase和hadoop。其实其中有些参数并不一定需要修改,例如我们让中间表在hive中存在默认的default数据库下,应该也是可行的。你只需要保证在同一套基础组件环境下,不同的kylin保存在底层组件的数据的路径不同。这样他们之前才能不相互干扰。
此文章如有疏忽,欢迎指正。

参考
1.多套Kylin集群共享Hbase和Hadoop计算集群关键配置最佳实践
2.Kylin 配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值