天天看點

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

Kylin叢集部署和cube使用

  1. 安裝叢集環境

    節點 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工作原理如下:

Kylin叢集部署和cube使用不使用壓縮不使用壓縮
  1. 叢集時間同步

    Ntp服務自行設定

  2. 安裝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

  1. 安裝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狀态。           
  1. 啟動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

  1. 登入

    http://node1:7070/kylin

預設的秘鑰:admin/KYLIN

Kylin叢集部署和cube使用不使用壓縮不使用壓縮
  1. 樣例資料測試

    啟動kylin之後運作sample.sh腳本

導入sample資料,模型,cube成功之後系統會提示重新開機kylin或者重新加載中繼資料讓資料生效。我們選擇重新加載。

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

重新加載過後檢視hive

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

檢視hbase中的資料多了一個kylin_metadata中繼資料表

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

預設的有一個cube需要build

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

Build成功之後

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

Build成功之後model裡面會出現storage資訊,之前是沒有的,可以到hbase裡面去找對應的表,同時cube狀态變為ready,表示可查詢。

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

8.查詢性能對比(為本地自己的資料建的cube,不是sample資料)

Kylin叢集部署和cube使用不使用壓縮不使用壓縮
Kylin叢集部署和cube使用不使用壓縮不使用壓縮

可以看出明細kylin要比hive快上很多倍,kylin叢集部署結束。

  1. Cube使用

    Cube使用分為五部:

第一步:建立工程

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

點選加号跳出下面的界面,輸入工程名,送出即可。

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

第二步,添加資料源

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

三個按鈕功能各不相同,自行了解,點選第一個輸入表名同步,點選第二個加載出hive的中繼資料,點選選擇表,同步。

Kylin叢集部署和cube使用不使用壓縮不使用壓縮
Kylin叢集部署和cube使用不使用壓縮不使用壓縮

第三步,建立model,自行設定各個步驟

Kylin叢集部署和cube使用不使用壓縮不使用壓縮
Kylin叢集部署和cube使用不使用壓縮不使用壓縮

第四部,建立cube,自行設定cube的每一步資訊

Kylin叢集部署和cube使用不使用壓縮不使用壓縮
Kylin叢集部署和cube使用不使用壓縮不使用壓縮

第五步,cube的build

Kylin叢集部署和cube使用不使用壓縮不使用壓縮

選擇build,送出cube job,mapreduce計算(計算引擎自選mapreduce或者spark)。結果存在hbase。結果表在model的storage裡面檢視。