Kylin叢集部署和cube使用
-
安裝叢集環境
節點 Kylin節點模式 Ip 記憶體 磁盤
Node1 All 192.167.71.11 2G 80G
Node2 query 192.168.71.12 1.5G 80G
Node3 query 192.168.71.13 1.5G 80G
Kylin工作原理如下:
-
叢集時間同步
Ntp服務自行設定
-
安裝kylin之前所需要的環境
Hadoop-2.7.4
Hbase-1.4.0
Spark-2.2.0 可選
Zookeepr-3.3.6
Hive-2.1.1 使用mysql存放中繼資料,遠端模式安裝
Kylin-2.3.1
Hadoop環境,HBASE,zookeeper還有hive自行安裝,叢集環境變量如下:
HADOOP
export HADOOP_HOME=/home/zhouwang/hadoop-2.7.4
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djave.library.path=$HADOOP_HOME/lib"
ZOOKEEPER
export ZOOKEEPER_HOME=/home/zhouwang/zookeeper-3.3.6
export PATH=:$PATH:$ZOOKEEPER_HOME/bin
HIVE
export HIVE_HOME=/home/zhouwang/apache-hive-2.1.1-bin
export HIVE_CONF_HOME=$HIVE_HOME/conf
export HCAT_HOME=$HIVE_HOME/hcatalog
export PATH=:$PATH:$HIVE_HOME/bin:$HCAT_HOME/bin
SCALA
export SCALA_HOME=/home/zhouwang/scala-2.10.5
export PATH=:$PATH:$SCALA_HOME/bin
SPARK
export SPARK_HOME=/home/zhouwang/spark-2.2.0-bin-hadoop2.7
export PATH=:$PATH:$SPARK_HOME/bin
HBASE
export HBASE_HOME=/home/zhouwang/hbase-1.4.0
export PATH=$PATH:/home/zhouwang/hbase-1.4.0/bin
KYLIN
export KYLIN_HOME=/home/zhouwang/apache-kylin-2.3.1-bin
export KYLIN_CONF_HOME=/home/zhouwang/apache-kylin-2.3.1-bin/conf
export PATH=:$PATH:$KYLIN_HOME/bin:$CATALINE_HOME/bin
export tomcat_root=$KYLIN_HOME/tomcat
export hive_dependency=$HIVE_HOME/conf:$HIVE_HOME/lib/*:HCAT_HOME/share/hcatalog/hive-hcatalog-core-2.1.1.jar
-
安裝kylin
(1)第一步修改bin/kylin.sh,這麼做的目的是為了加入$hive_dependency環境,解決後續的兩個問題,都是沒有hive依賴的原因。
第一個問題是kylinweb界面load hive表會失敗,第二個問題是cube build的第二步會報org/apache/Hadoop/hive/conf/hiveConf的錯誤。
更改如下:
export HBASE_CLASSPATH_PREFIX=${tomcat_root}/bin/bootstrap.jar:${tomcat_root}/bin/tomcat-juli.jar:${tomcat_root}/lib/*:$hive_dependency:$HBASE_CLASSPATH_PREFIX
(2)第二步就是hadoop支援壓縮的問題,本例的hadoop不支援snappy壓縮,會導緻後續cube build報錯。如果要hadoop支援的話,另行找解決方案
解決這個問題對應的要修改kylin的三個配置檔案
Kylin_job_conf.xml
不使用壓縮
mapreduce.map.output.compress設定為false
mapreduce.output.fileoutputformat.compress 設定為false
kylin_hive_conf.xml
hive.exec.compress.output 設定為false
kylin.properties
修改見下文
(3)第三步修改kylin.properties
主節點配置
kylin.metadata.url=kylin_metadata@hbase ###hbase上存儲kylin中繼資料
kylin.env.hdfs-working-dir=/kylin ###hdfs上kylin工作目錄
kylin.env=DEV
kylin.env.zookeeper-base-path=/kylin
kylin.server.mode=all ###kylin主節點模式,從節點的模式為query,隻有這一點不一樣
kylin.rest.servers=node1:7070,node2:7070,node3:7070 ###叢集的資訊同步
kylin.web.timezone=GMT+8 ####改為中國時間
kylin.job.retry=2
kylin.job.mapreduce.default.reduce.input.mb=500
kylin.job.concurrent.max.limit=10
kylin.job.yarn.app.rest.check.interval.seconds=10
kylin.job.hive.database.for.intermediatetable=kylin_flat_db ###build cube 産生的Hive中間表存放的資料庫
kylin.hbase.default.compression.codec=none ###不采用壓縮
kylin.job.cubing.inmem.sampling.percent=100
kylin.hbase.regin.cut=5
kylin.hbase.hfile.size.gb=2
定義kylin用于MR jobs的job.jar包和hbase的協處理jar包,用于提升性能(添加項)
kylin.job.jar=/home/zhouwang/apache-kylin-2.3.1-bin/lib/kylin-job-2.3.1.jar
kylin.coprocessor.local.jar=/home/zhouwang/apache-kylin-2.3.1-bin/lib/kylin-coprocessor-2.3.1.jar
配置完之後将kylin安裝包傳送搭配從節點
Scp -r apache-kylin-2.3.1-bin zhouwang@node2:~/apache-kylin-2.3.11-bin
Scp -r apache-kylin-2.3.1-bin zhouwang@node3:~/apache-kylin-2.3.11-bin
主從節點的配置的唯一不同就是kylin.server.mode,一個叢集的所有節點必須隻能有一個節點處于job或者all狀态,其他節點全部為query狀态。
-
啟動kylin
第一步,啟動zookeeper,所有幾點運作zkServer.sh start
第二步,啟動hadoop,主節點運作start-all.sh
第三步,啟動JobHistoryserver服務,主節點啟動mr-jobhistoryserver-deamon.sh start historyserver
第四步,啟動hivemetastore服務,hive –service metastore &
第五步啟動hbase叢集,主節點啟動start-hbase.sh
第六步,檢查基礎依賴的服務,hadoop,hbase,hive,環境變量,工作目錄等,hive依賴檢查find-hive-dependency.sh ,hbase依賴檢查find-hbase-dependency.sh,所有的依賴檢查可吃用chek-env.sh。
第六步,啟動kylin服務,所有節點運作bin/kylin.sh start
-
登入
http://node1:7070/kylin
預設的秘鑰:admin/KYLIN
-
樣例資料測試
啟動kylin之後運作sample.sh腳本
導入sample資料,模型,cube成功之後系統會提示重新開機kylin或者重新加載中繼資料讓資料生效。我們選擇重新加載。
重新加載過後檢視hive
檢視hbase中的資料多了一個kylin_metadata中繼資料表
預設的有一個cube需要build
Build成功之後
Build成功之後model裡面會出現storage資訊,之前是沒有的,可以到hbase裡面去找對應的表,同時cube狀态變為ready,表示可查詢。
8.查詢性能對比(為本地自己的資料建的cube,不是sample資料)
可以看出明細kylin要比hive快上很多倍,kylin叢集部署結束。
-
Cube使用
Cube使用分為五部:
第一步:建立工程
點選加号跳出下面的界面,輸入工程名,送出即可。
第二步,添加資料源
三個按鈕功能各不相同,自行了解,點選第一個輸入表名同步,點選第二個加載出hive的中繼資料,點選選擇表,同步。
第三步,建立model,自行設定各個步驟
第四部,建立cube,自行設定cube的每一步資訊
第五步,cube的build
選擇build,送出cube job,mapreduce計算(計算引擎自選mapreduce或者spark)。結果存在hbase。結果表在model的storage裡面檢視。