Kylin學習筆記01 - docker安裝和使用Kylin(macOS)

Kylin學習筆記 - mac使用docker安裝和使用Kylin

第一章 概述及安裝啓動

1.1 Kylin概覽

Apache Kylin™是一個開源的、分佈式的分析型數據倉庫,提供 Hadoop 之上的 SQL 查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由eBay Inc.開發並貢獻至開源社區。

Apache Kylin™ 令使用者僅需三步,即可實現超大數據集上的亞秒級查詢。

  1. 定義數據集上的一個星形或雪花形模型
  2. 在定義的數據表上構建cube
  3. 使用標準 SQL 通過 ODBC、JDBC 或 RESTFUL API 進行查詢,僅需亞秒級響應時間即可獲得查詢結果

1.2 Kylin架構

Kylin 提供與多種數據可視化工具的整合能力,如 Tableau,PowerBI 等,令用戶可以使用 BI 工具對 Hadoop 數據進行分析。

img

1)REST Server

REST Server是一套面向應用程序開發的入口點,旨在實現針對Kylin平臺的應用開發工作。 此類應用程序可以提供查詢、獲取結果、觸發cube構建任務、獲取元數據以及獲取用戶權限等等。另外可以通過Restful接口實現SQL查詢。

2)查詢引擎(Query Engine)

當cube準備就緒後,查詢引擎就能夠獲取並解析用戶查詢。它隨後會與系統中的其它組件進行交互,從而向用戶返回對應的結果。

3)路由器(Routing)

在最初設計時曾考慮過將Kylin不能執行的查詢引導去Hive中繼續執行,但在實踐後發現Hive與Kylin的速度差異過大,導致用戶無法對查詢的速度有一致的期望,很可能大多數查詢幾秒內就返回結果了,而有些查詢則要等幾分鐘到幾十分鐘,因此體驗非常糟糕。最後這個路由功能在發行版中默認關閉。

4)元數據管理工具(Metadata)

Kylin是一款元數據驅動型應用程序。元數據管理工具是一大關鍵性組件,用於對保存在Kylin當中的所有元數據進行管理,其中包括最爲重要的cube元數據。其它全部組件的正常運作都需以元數據管理工具爲基礎。 Kylin的元數據存儲在hbase中。

5)任務引擎(Cube Build Engine)

這套引擎的設計目的在於處理所有離線任務,其中包括shell腳本、Java API以及Map Reduce任務等等。任務引擎對Kylin當中的全部任務加以管理與協調,從而確保每一項任務都能得到切實執行並解決其間出現的故障。

1.3 Kylin特點

Kylin的主要特點包括支持SQL接口、支持超大規模數據集、亞秒級響應、可伸縮性、高吞吐率、BI工具集成等。

1)標準SQL接口:

Kylin是以標準的SQL作爲對外服務的接口。

2)支持超大數據集:

Kylin對於大數據的支撐能力可能是目前所有技術中最爲領先的。早在2015年eBay的生產環境中就能支持百億記錄的秒級查詢,之後在移動的應用場景中又有了千億記錄秒級查詢的案例。

3)亞秒級響應:

Kylin擁有優異的查詢相應速度,這點得益於預計算,很多複雜的計算,比如連接、聚合,在離線的預計算過程中就已經完成,這大大降低了查詢時刻所需的計算量,提高了響應速度。

4)可伸縮性和高吞吐率:

單節點Kylin可實現每秒70個查詢,還可以搭建Kylin的集羣。

5)BI工具集成

Kylin可以與現有的BI工具集成,具體包括如下內容。

ODBC:與Tableau、Excel、PowerBI等工具集成

JDBC:與Saiku、BIRT等Java工具集成

RestAPI:與JavaScript、Web網頁集成

Kylin開發團隊還貢獻了****Zepplin****的插件,也可以使用Zepplin來訪問Kylin服務。

第二章 Kylin環境搭建及啓動

Apache Kylin官方文檔-安裝指南

官方推薦的兩種環境搭建方式:

  1. 有Hadoop環境(linux)
  2. 沒有Hadoop環境(docker)

我這裏使用的是docker搭建環境和啓動kylin

  • 本機環境

在這裏插入圖片描述

在這裏插入圖片描述

  • docker安裝使用kylin

一、 從docker鏡像安裝使用kylin(不需要提前準備hadoop環境)

爲了讓用戶方便的試用 Kylin,官方已經提供了 Kylin 的 docker 鏡像。該鏡像中,Kylin 依賴的各個服務均已正確的安裝及部署,包括:

  • jdk 1.8
  • Hadoop 2.7.0
  • Hive 1.2.1
  • Hbase 1.1.2
  • Spark 2.3.1
  • Zookeeper 3.4.6
  • Kafka 1.1.1
  • Mysql
  • Maven 3.6.1

我們已將面向用戶的 Kylin 鏡像上傳至 docker 倉庫,用戶無需在本地構建鏡像,只需要安裝docker,就可以體驗kylin的一鍵安裝。

step1、首先執行以下命令從 docker 倉庫 pull 鏡像:

docker pull apachekylin/apache-kylin-standalone:3.0.1

此處的鏡像包含的是kylin最新Release版本kylin 3.0.1。由於該鏡像中包含了所有kylin依賴的大數據組件,所以拉取鏡像需要的時間較長,請耐心等待。Pull成功後顯示如下:
img

step2、執行以下命令來啓動容器:

docker run -d \
-m 8G \
-p 7070:7070 \
-p 8088:8088 \
-p 50070:50070 \
-p 8032:8032 \
-p 8042:8042 \
-p 16010:16010 \
apachekylin/apache-kylin-standalone:3.0.1

容器會很快啓動,由於容器內指定端口已經映射到本機端口,可以直接在本機瀏覽器中打開各個服務的頁面,如:

  • Kylin 頁面:http://127.0.0.1:7070/kylin/
  • Hdfs NameNode 頁面:http://127.0.0.1:50070
  • Yarn ResourceManager 頁面:http://127.0.0.1:8088
  • HBase 頁面:http://127.0.0.1:60010

容器啓動時,會自動啓動以下服務:

  • NameNode, DataNode
  • ResourceManager, NodeManager
  • HBase
  • Kafka
  • Kylin

並自動運行 $KYLIN_HOME/bin/sample.sh及在 Kafka 中創建 kylin_streaming_topic topic 並持續向該 topic 中發送數據。這是爲了讓用戶啓動容器後,就能體驗以批和流的方式的方式構建 Cube 並進行查詢。
用戶可以通過docker exec命令進入容器,容器內相關環境變量如下:

JAVA_HOME=/home/admin/jdk1.8.0_141
HADOOP_HOME=/home/admin/hadoop-2.7.0
KAFKA_HOME=/home/admin/kafka_2.11-1.1.1
SPARK_HOME=/home/admin/spark-2.3.1-bin-hadoop2.6
HBASE_HOME=/home/admin/hbase-1.1.2
HIVE_HOME=/home/admin/apache-hive-1.2.1-bin
KYLIN_HOME=/home/admin/apache-kylin-3.0.0-alpha2-bin-hbase1x

使用ADMIN/KYLIN的用戶名和密碼組合登陸Kylin後,用戶可以使用sample cube來體驗cube的構建和查詢,也可以按照下面“基於hadoop環境安裝使用kylin”中從step8之後的教程來創建並查詢屬於自己的model和cube。

二、本機測試和遇到的問題

1. 本機測試啓動kylin

  • docker拉取kylin鏡像後,啓動kylin

在這裏插入圖片描述

  • 啓動成功後,查看docker鏡像

2. 我遇到的問題

  • 問題描述:

    docker啓動成功後,訪問7070端口失敗,查看docker鏡像時,確實已經啓動
    在這裏插入圖片描述

在這裏插入圖片描述

  • 原因及解決方案:
    • 1)docker配置的內存資源不夠,服務啓動後因內存不足導致出錯
    • 解決方案:將docker配置的內存大小設置成 > 8G,我這裏分配了9G
    • 在這裏插入圖片描述
    • 2)kylin服務啓動慢,等一段時間後再刷新網頁即可登錄

3. 啓動成功

  • 默認賬號密碼:
    • 賬號:admin
    • 密碼:KYLIN

在這裏插入圖片描述

  • 登錄成功後,就可以愉快的使用kylin了😁
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章