節點node |
Kylin節點模式mysql |
Ipweb |
內存sql |
磁盤數據庫 |
Node1apache |
Allbootstrap |
192.167.71.11tomcat |
2Gapp |
80Goop |
Node2 |
query |
192.168.71.12 |
1.5G |
80G |
Node3 |
query |
192.168.71.13 |
1.5G |
80G |
Kylin工做原理以下:
Ntp服務自行設置
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
(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狀態。
第一步,啓動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使用分爲五部:
第一步:新建工程
點擊加號跳出下面的界面,輸入工程名,提交便可。
第二步,添加數據源
三個按鈕功能各不相同,自行了解,點擊第一個輸入表名同步,點擊第二個加載出hive的元數據,點擊選擇表,同步。
第三步,新建model,自行設置各個步驟
第四部,新建cube,自行設置cube的每一步信息
第五步,cube的build
選擇build,提交cube job,mapreduce計算(計算引擎自選mapreduce或者spark)。結果存在hbase。結果表在model的storage裏面查看。