CDH+Kylin三部曲之三:Kylin官方demo

歡迎訪問個人GitHub

https://github.com/zq2599/blog_demosgit

內容:全部原創文章分類彙總及配套源碼,涉及Java、Docker、Kubernetes、DevOPS等;程序員

本文是《CDH+Kylin三部曲》系列的終篇,先簡單回顧前面的內容:github

  1. 《CDH+Kylin三部曲之一:準備工做》:準備好機器、腳本、安裝包;
  2. 《CDH+Kylin三部曲之二:部署和設置》:完成CDH和Kylin部署,並在管理頁面作好相關的設置;

如今Hadoop、Kylin都就緒了,接下來實踐Kylin的官方demo;算法

Yarn參數設置

Yarn的內存參數設置以後必定要重啓Yarn使之生效,不然Kylin提交的任務是會因爲資源限制而沒法執行;sql

關於Kylin官方demo

  1. 下圖是官方demo的腳本的一部分(create_sample_tables.sql),基於HDFS數據建立Hive表:

在這裏插入圖片描述

  1. 經過腳本可見<font color="blue">KYLIN_SALES</font>爲事實表,其餘是維度表,而且KYLIN_ACCOUNT和KYLIN_COUNTRY存在關聯,所以維度模型符合Snowflake Schema;

導入樣例數據

  1. SSH登陸CDH服務器
  2. 切換到hdfs帳號:<font color="blue">su - hdfs</font>
  3. 執行導入命令:<font color="blue">${KYLIN_HOME}/bin/sample.sh</font>
  4. 導入成功,控制檯輸出以下:

在這裏插入圖片描述

檢查數據

  1. 檢查數據,執行<font color="blue">beeline</font>進入會話模式(hive官方推薦用<font color="blue">beeline</font>取代Hive CLI):

在這裏插入圖片描述

  1. 在beeline會話模式輸入連接URL:<font color="blue">!connect jdbc:hive2://localhost:10000</font>,按照提示輸入帳號<font color="blue">hdfs</font>,密碼直接回車:

在這裏插入圖片描述

  1. 用命令<font color="blue">show tables</font>查看當前的hive表,已建好:

在這裏插入圖片描述

  1. 查出訂單的最先和最晚時間,後面構建Cube的時候會用到,執行SQL:<font color="blue">select min(PART_DT), max(PART_DT) from kylin_sales;</font> ,可見最先<font color="blue">2012-01-01</font>,最晚<font color="blue">2014-01-01</font>,整個查詢耗時<font color="red">18.87秒</font>:

在這裏插入圖片描述

構建Cube:

數據準備完成,能夠構建Kylin Cube了:shell

  1. 登陸Kylin網頁:http://192.168.50.134:7070/kylin
  2. 加載Meta數據,以下圖:

在這裏插入圖片描述

  1. 以下圖紅框所示,數據加載成功:

在這裏插入圖片描述

  1. 在Model頁面能夠看到事實表和維度表,以下圖的操做能夠建立一個MapReduce任務,計算維度表KYLIN_ACCOUNT每一個列的基數(Cardinality):

在這裏插入圖片描述

  1. 去Yarn頁面(CDH服務器的8088端口),以下圖,可見有個MapReduce類型的任務正在執行中:

在這裏插入圖片描述

  1. 上述任務很快就能完成(10多秒),此時刷新Kylin頁面,可見<font color="blue">KYLIN_ACCOUNT</font>表的Cardinality數據已經計算完成了(hive查詢獲得ACCOUNT_ID數量是10000,但下圖的Cardinality值爲10420,Kylin對Cardinality的計算採用的是HyperLogLog的近似算法,與精確值有偏差,其餘四個字段的Cardinality與Hive查詢結果一致):

在這裏插入圖片描述

  1. 接下來開始構建Cube:

在這裏插入圖片描述

  1. 日期範圍,剛纔Hive查詢結果是<font color="blue">2012-01-01</font>到<font color="blue">2014-01-01</font>,注意截止日期要超過2014-01-01:

在這裏插入圖片描述

  1. 在Monitor頁面可見進度:

在這裏插入圖片描述

  1. 去Yarn頁面(CDH服務器的8088端口),能夠看到對應的任務和資源使用狀況:

在這裏插入圖片描述

  1. build完成後,會出現ready圖標:

在這裏插入圖片描述

查詢

  1. 先嚐試查詢交易的最先和最晚時間,這個查詢在Hive上執行的耗時是<font color="red">18.87秒</font>,以下圖,結果一致,耗時<font color="red">0.14秒</font>:

在這裏插入圖片描述

  1. 下面這個SQL是Kylin官方示例用來對比響應時間的,對訂單按日期聚合,再按日期排序,而後接下來分別用Kylin和Hive查詢:
select part_dt, sum(price) as total_sold, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt;
  1. Kylin查詢耗時<font color="red">0.13秒</font>:

在這裏插入圖片描述

  1. Hive查詢,結果相同,耗時<font color="red">40.196秒</font>:

在這裏插入圖片描述

  1. 最後來看下資源使用狀況,Cube構建過程當中,18G內存被使用:

在這裏插入圖片描述
至此,CDH+Kylin從部署到體驗就已完成,《CDH+Kylin三部曲》系列也結束了,若是您正在學習Kylin,但願本文可以給您一些參考。服務器

歡迎關注公衆號:程序員欣宸

微信搜索「程序員欣宸」,我是欣宸,期待與您一同暢遊Java世界...
https://github.com/zq2599/blog_demos
相關文章
相關標籤/搜索