CDH5.16搭建Kylin和Dashboard功能開啓

CDH5.16環境下搭建Kylin2.6.6

注意事項: 從 v2.6.1 開始, Kylin 不再包含 Spark 二進制包,需要單獨下載

1.軟件版本介紹:

CDH5.16.2

Kylin: 2.6.6

2. CDH版本kylin2.6.6下載軟件

https://archive.apache.org/dist/kylin/apache-kylin-2.6.6/apache-kylin-2.6.6-bin-cdh57.tar.gz

3. 創建目錄

mkdir /opt/dev_env/kylin

4.上傳並解壓 /opt/dev_env/kylin目錄:

tar -zxvf apache-kylin-2.6.6-bin-cdh57.tar.gz -C ./

5.建立軟連接

[joy@hadoop002 kylin]$ ln -s apache-kylin-2.6.6-bin-cdh57/ kylin

6. 添加環境變量

export KYLIN_HOME=/opt/dev_env/kylin/kylin
export PATH=$KYLIN_HOME/bin:$PATH

7. 環境變量生效

source /etc/profile
  • 注意:

從 v2.6.1 開始, Kylin 不再包含 Spark 二進制包;

##(沒有設置環境變量也可以啓動) 您需要另外下載 Spark,然後設置 SPARK_HOME 系統變量到 Spark 安裝目錄:

  • 使用腳本下載
$KYLIN_HOME/bin/download-spark.sh

Kylin tarball 目錄

  • bin: shell 腳本,用於啓動/停止 Kylin,備份/恢復 Kylin 元數據,以及一些檢查端口、獲取 Hive/HBase 依賴的方法等;
  • conf: Hadoop 任務的 XML 配置文件,這些文件的作用可參考配置頁面
  • lib: 供外面應用使用的 jar 文件,例如 Hadoop 任務 jar, JDBC 驅動, HBase coprocessor 等.
  • meta_backups: 執行 bin/metastore.sh backup 後的默認的備份目錄;
  • sample_cube 用於創建樣例 Cube 和表的文件。
  • spark: 自帶的 spark。
  • tomcat: 自帶的 tomcat,用於啓動 Kylin 服務。
  • tool: 用於執行一些命令行的jar文件。

8. 修改kylin.properties配置文件

進入kylin/conf配置文件下

cp kylin.properties kylin.properties.bak
vim kylin.properties

# 修改:
kylin.server.cluster-servers=hadoop002:7070

 
# 添加配置:
kylin.job.jar=/opt/dev_env/kylin/kylin/lib/kylin-job-2.6.6.jar
kylin.coprocessor.local.jar=/opt/dev_env/kylin/kylin/lib/kylin-coprocessor-2.6.6.jar
kylin.job.yarn.app.rest.check.status.url=http://hadoop002:8088/ws/v1/cluster/apps/${job_id}?anonymous=true
Cube構建出錯:
java.lang.ClassNotFoundException: org.apache.hadoop.hive.serde2.typeinfo.TypeInfo
解決方案:
在kylin.properties中添加
#kylin.job.mr.lib.dir=/opt/cloudera/parcels/CDH/lib/sentry/lib

 9.檢查 

[joy@hadoop002 bin]# cd /opt/dev_env/kylin/kylin/bin
[joy@hadoop002 bin]$ ./check-env.sh
Retrieving hadoop conf dir...
KYLIN_HOME is set to /opt/dev_env/kylin/kylin
[joy@hadoop002 bin]$ hdfs dfs -ls /
drwxr-xr-x   - joy   supergroup          0 2020-06-09 14:47 /kylin
[joy@hadoop002 bin]$ ./find-hbase-dependency.sh
Retrieving hbase dependency...
[joy@hadoop002 bin]$ ./find-hive-dependency.sh
Retrieving hive dependency...

10.啓動kylin

[joy@hadoop002 kylin]$ bin/kylin.sh start
Retrieving hadoop conf dir...
KYLIN_HOME is set to /opt/dev_env/kylin/kylin
Retrieving hive dependency...
Retrieving hbase dependency...
Retrieving hadoop conf dir...
Retrieving kafka dependency...
Retrieving Spark dependency...

11.查看kylinUI日誌

tail 200 -f logs/kylin.out

12.登陸kylin

http://hadoop002:7070/kylin/login

User: ADMIN

Pass: KYLIN

 

到這裏, 在cdh中搭建Kylin完成

Kylin配置Spark並構建Cube, 配置過程往下看↓↓↓

Kylin測試

1.導入官方測試數據進行測試

cd $KYLIN_HOME/bin
./sample.sh

日誌倒數兩行

Sample cube is created successfully in project 'learn_kylin'.

Restart Kylin Server or click Web UI => System Tab => Reload Metadata to take effect

#這句話的意思是 例子cube已成成功創建在了 工程名稱叫'learn_kylin'裏面了

#重啓kylin或者通過webUI => System選項卡=> 重新導入元數據信息

查看Hive default庫中的表,多了五張表

hive (default)> show tables;
OK
tab_name
kylin_account
kylin_cal_dt
kylin_category_groupings
kylin_country
kylin_sales
Time taken: 0.024 seconds, Fetched: 5 row(s)

2. 加載樣例數據

在System中點擊Reload Metadata重新加載元數據或者重啓kylin,如下圖:

導入成功之後,點擊Model出現下圖:

3. Cube 構建

點擊Cube的Actions現象---->再點擊Build開始構建

 

查看正在構建的cube任務,點擊monitor:

[joy@hadoop002 spark]$ hbase shell
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
20/06/09 18:32:29 INFO Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.0-cdh5.16.2, rUnknown, Mon Jun  3 03:50:03 PDT 2019

 
hbase(main):001:0> list
TABLE
KYLIN_FORDTHXTYU
kylin_metadata

 kylin構建自動轉化成mapreduce任務進行了:

4. 查詢構建好的Cube

select sum(KYLIN_SALES.PRICE) as price_sum
       ,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME
       ,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
from KYLIN_SALES
inner join KYLIN_CATEGORY_GROUPINGS
       on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID
group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME, KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME
order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc, KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc


 

 

Kylin配置Spark並構建Cube

CDH版本: 5.16.2

Kylin版本: 2.6.6

Kylin 的計算引擎除了 MapReduce ,還有速度更快的 Spark ,本文就以 Kylin 自帶的示例 kylin_sales_cube 來測試一下 Spark 構建 Cube 的速度。

1.配置Kylin的相關Spark參數

在運行 Spark cubing 前,建議查看一下這些配置並根據集羣的情況進行自定義。下面是建議配置,開啓了 Spark 動態資源分配:

cd $KYLIN_HOME/conf
vim kylin.properties
## Spark conf (default is in spark/conf/spark-defaults.conf)
kylin.engine.spark-conf.spark.master=yarn
kylin.engine.spark-conf.spark.submit.deployMode=cluster
kylin.engine.spark-conf.spark.yarn.queue=default
kylin.engine.spark-conf.spark.driver.memory=2G
kylin.engine.spark-conf.spark.executor.memory=4G
kylin.engine.spark-conf.spark.executor.instances=40
kylin.engine.spark-conf.spark.yarn.executor.memoryOverhead=1024
kylin.engine.spark-conf.spark.shuffle.service.enabled=true
kylin.engine.spark-conf.spark.eventLog.enabled=true
kylin.engine.spark-conf.spark.eventLog.dir=hdfs\:///kylin/spark-history
kylin.engine.spark-conf.spark.history.fs.logDirectory=hdfs\:///kylin/spark-history
#kylin.engine.spark-conf.spark.hadoop.yarn.timeline-service.enabled=false
#
#### Spark conf for specific job
#kylin.engine.spark-conf-mergedict.spark.executor.memory=6G
#kylin.engine.spark-conf-mergedict.spark.memory.fraction=0.2
#
## manually upload spark-assembly jar to HDFS and then set this property will avoid repeatedly uploading jar at runtime
kylin.engine.spark-conf.spark.yarn.archive=hdfs://hadoop001:8020/kylin/spark/spark-libs.jar
kylin.engine.spark-conf.spark.io.compression.codec=org.apache.spark.io.SnappyCompressionCodec
#
## uncomment for HDP 如果是HDP版本,請取消下述三行配置的註釋
##kylin.engine.spark-conf.spark.driver.extraJavaOptions=-Dhdp.version=current
##kylin.engine.spark-conf.spark.yarn.am.extraJavaOptions=-Dhdp.version=current
##kylin.engine.spark-conf.spark.executor.extraJavaOptions=-Dhdp.version=current

其中 kylin.engine.spark-conf.spark.yarn.archive 配置是指定了 Kylin 引擎要運行的 jar 包,該 jar 包需要自己生成且上傳到 HDFS 。由於我執行 Kylin 服務的用戶是 kylin,所以要先切換到 kylin 用戶下去執行。命令如下:

cd $KYLIN_HOME

# 生成spark-libs.jar文件

jar cv0f spark-libs.jar -C $KYLIN_HOME/spark/jars/ ./

# 上傳到HDFS上的指定目錄

hdfs dfs -mkdir -p /kylin/spark/

hdfs dfs -put spark-libs.jar /kylin/spark/

重啓kylin(這裏一定要重啓,不然在Cube時會報錯)

$KYLIN_HOME/bin/kylin.sh stop && $KYLIN_HOME/bin/kylin.sh start

2.修改Cube的配置

配置好 Kylin 的相關 Spark 參數後,接下來我們需要將 Cube 的計算引擎修改爲 Spark ,修改步驟如下:

先指定 Kylin 自帶的生成 Cube 腳本:sh ${KYLIN_HOME}/bin/sample.sh ,會在 Kylin Web 頁面上加載出兩個 Cube 。

接着訪問我們的 Kylin Web UI ,然後點擊 Model -> Action -> Edit 按鈕:

點擊第五步:Advanced Setting,往下划動頁面,更改 Cube Engine 類型,將 MapReduce 更改爲 Spark。然後保存配置修改。如下圖所示:

 

點擊 “Next” 進入 “Configuration Overwrites” 頁面,點擊 “+Property” 添加屬性 “kylin.engine.spark.rdd-partition-cut-mb” 其值爲 “500” (理由如下):

樣例 cube 有兩個耗盡內存的度量: “COUNT DISTINCT” 和 “TOPN(100)”;當源數據較小時,他們的大小估計的不太準確: 預估的大小會比真實的大很多,導致了更多的 RDD partitions 被切分,使得 build 的速度降低。500 對於其是一個較爲合理的數字。點擊 “Next” 和 “Save” 保存 cube。

對於沒有”COUNT DISTINCT” 和 “TOPN” 的 cube,請保留默認配置。

3.構建Cube

保存好修改後的 cube 配置後,點擊 Action -> Build,選擇構建的起始時間(一定要確保起始時間內有數據,否則構建 cube 無意義),然後開始構建 cube 。

在構建 cube 的過程中,可以打開 Yarn ResourceManager UI 來查看任務狀態。當 cube 構建到 第七步 時,可以打開 Spark 的 UI 網頁,它會顯示每一個 stage 的進度以及詳細的信息。

Kylin 是使用的自己內部的 Spark ,所以我們還需要額外地啓動 Spark History Server。

${KYLIN_HOME}/spark/sbin/start-history-server.sh hdfs://<namenode_host>:8020/kylin/spark-history

啓動 Spark History Server 命令

${KYLIN_HOME}/spark/sbin/start-history-server.sh hdfs://hadoop001:8020/kylin/spark-history

訪問:http://ip:18080/ ,可以看到 Spark 構建 Cube 的 job 詳細信息,該信息對疑難解答和性能調整有極大的幫助。

http://hadoop002:18080/

 

 

到這裏, Kylin使用Spark構建Cube完成, 如有遇到其他問題參考博客, 鏈接: https://www.cnblogs.com/createboke/p/11581915.html

該博客中有記錄實施過程中遇到的一些問題,可搜索關鍵字: FAQ 快速找到

 

Kylin Dashboard 功能開啓

1.Kylin 爲使得在 WebUI 上的 Dashboard 有效,您需要設置

修改kylin.properties,並添加如下內容

kylin.cube.cubeplanner.enabled=true
kylin.server.query-metrics2-enabled=true
kylin.metrics.reporter-query-enabled=true
kylin.metrics.reporter-job-enabled=true
kylin.metrics.monitor-enabled=true
kylin.web.dashboard-enabled=true
# 建立系統Cube用於監控
# 特別說明:默認生成的hive元數據表 會新建名爲kylin的庫存儲來存儲。如果需要指定,使用
# kylin.metrics.prefix=dbname

重啓kylin

$KYLIN_HOME/bin/kylin.sh stop && $KYLIN_HOME/bin/kylin.sh start

腳本自動配置方式(對高版本採用了自動配置形式)

執行腳本./system-cube.sh setup

$KYLIN_HOME/bin/system-cube.sh setup

這一步會建立對應的hive表,將對應的cube導入到matestore裏面,重啓kylin或者在web頁面刷新kylin的元數據即在project可看到KYLIN_SYSTEM。

繼續執行腳本./system-cube.sh build

$KYLIN_HOME/bin/system-cube.sh build

執行build命令即可構建五個system_cube,構建完成後即可在web頁面中發現dashboard界面

最後設置定時構建任務:./system-cube.sh cron即可(運行一次就行)

$KYLIN_HOME/bin/system-cube.sh cron


==============完成配置 Kylin Dashboard==============

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章