標籤(空格分隔): 大數據運維專欄web
- 一:關於kylin的介紹
- 二:安裝環境介紹與軟件包的準備
- 三: 配置kylin 與 CDH 6.3.2集成
- 四: kylin 的測試
- 五: kylin 自建表導入數據測試
Apache Kylin™是一個開源的、分佈式的分析型數據倉庫,提供Hadoop/Spark 之上的 SQL 查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由 eBay 開發並貢獻至開源社區。它能在亞秒內查詢巨大的表。 Apache Kylin™ 令使用者僅需三步,便可實現超大數據集上的亞秒級查詢。 1 定義數據集上的一個星形或雪花形模型 2 在定義的數據表上構建cube 3 使用標準 SQL 經過 ODBC、JDBC 或 RESTFUL API 進行查詢,僅需亞秒級響應時間便可得到查詢結果 Kylin 提供與多種數據可視化工具的整合能力,如 Tableau,PowerBI 等,令用戶能夠使用 BI 工具對 Hadoop 數據進行分析。 參考官網: http://kylin.apache.org/cn/
##二:安裝環境介紹與軟件包的準備sql
系統:CentOS7.5x64 CDH 版本: cdh 6.3.2 jdk 版本: jdk1.8 cat /etc/hosts --- 192.168.11.37 test01.lanxintec.cn 192.168.11.38 test02.lanxintec.cn 192.168.11.40 test03.lanxintec.cn ---
v3.1.0 這是 3.0.0 版本後的一個主要版本,包含10個新功能和142個問題的修復以及各類改進。關於具體內容請查看發佈說明. 發佈說明, 安裝指南 and 升級指南 源碼下載: apache-kylin-3.1.0-source-release.zip [asc] [sha256] Hadoop 2 二進制包: for HBase 1.x (includes HDP 2.3+, AWS EMR 5.0+, Azure HDInsight 3.4 - 3.6) - apache-kylin-3.1.0-bin-hbase1x.tar.gz [asc] [sha256] for Cloudera CDH 5.7+ - apache-kylin-3.1.0-bin-cdh57.tar.gz [asc] [sha256] Hadoop 3 二進制包: for Hadoop 3.1 + HBase 2.0 (includes Hortonworks HDP 3.0) - apache-kylin-3.1.0-bin-hadoop3.tar.gz [asc] [sha256] for Cloudera CDH 6.0/6.1 (check KYLIN-3564 first) - apache-kylin-3.1.0-bin-cdh60.tar.gz [asc] [sha256]
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kylin/apache-kylin-3.1.0/apache-kylin-3.1.0-bin-cdh60.tar.gz mv apache-kylin-3.1.0-bin-cdh60.tar.gz software/
mkdir -p /opt/bigdata/ cd software tar -zxvf apache-kylin-3.1.0-bin-cdh60.tar.gz mv apache-kylin-3.1.0-bin-cdh60 /opt/bigdata/
cd /opt/bigdata/apache-kylin-3.1.0-bin-cdh60 bin/kylin.sh start
報錯: Error: Could not find or load main class org.apache.hadoop.hbase.util.GetJavaProperty 解決: vim /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hbase/bin/hbase ---- 在169 行: 加上hbase lib CLASSPATH="${HBASE_CONF_DIR}" CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hbase/lib/* ----
vim /etc/profile 到最後加上: --- ### set spark home and kylin home and kafka home export SPARK_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark export KAFKA_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/kafka export FLINK_HOME=/opt/cloudera/parcels/FLINK/lib/flink export KYLIN_HOME=/opt/bigdata/apache-kylin-3.1.0-bin-cdh60 --- 若沒有集成請集成安裝 flink 與安裝 kafka cd /opt/bigdata/apache-kylin-3.1.0-cdh60/ bin/check-env.sh 保證全部環境都是pass 狀態
啓動kylin bin/kylin.sh start
查看logs目錄 cd /opt/bigdata/apache-kylin-3.1.0-cdh60/logs/ tail -f kylin.log
打開web 也沒 http://192.168.11.37/kylin/ 用戶名:ADMIN 密碼:KYLIN (用戶名密碼都是大寫)
cd /opt/bigdata/apache-kylin-3.1.0-cdh60/bin/ ./sample.sh
從啓kylin cd /opt/bigdata/apache-kylin-3.1.0-cdh60/bin ./kylin.sh stop ./kylin.sh start
重新刷新一下元數據(RELOAD METADATA) 點擊:System ---> RELOAD METADATA
點擊:YES 在右下角會有 Sucess cache reaload Sucessful
點擊菜單欄上的 Model 會生成兩個sample 表的模型 kylin_sales_model kylin_streaming_model
在hive中 查看錶: hive hive > show tables; hive> select count(*) from kylin_account;
打開yarn的界面 http://192.168.11.37:8088
最後顯示爲10000 條 數據
將hive 中的表 刷新到 impala 當中 impala的加載表: impala-shell -i "INVALIDATE METADATA" 單獨刷新一張表: refrash + 表名 hive 的default庫 當中多了幾張kylin的表
以kylin 表 中 的 : kylin_sales_cube
點擊 YES
這邊只構建 一個月維度的sales 否則硬件配置不夠,此步會消耗巨大的硬件資源
構建 點擊monitor 查看build 能夠不斷的刷新網頁 查看 job 的 構建 進度
這邊默認 走的是Hadoop 的mapreduce 因此比較慢
構建查詢: 點擊:insight New Query: 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
在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
在kylin 中查詢只要 7.09s 而在hive 中查詢 要 102.895s
執行一個複雜的查詢: 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
在hive 中查詢: 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 中查詢 只要 2.18s hive 中查詢 要 116.07s
create_table.sql department.csv employee.csv 將這三個文件傳到 hdfs 上面 hdfs dfs -mkdir /tmp/kylin-test hdfs dfs -put create_table.sql department.csv employee.csv /tmp/kylin-test
vim create-table.sql --- DROP TABLE IF EXISTS employee; CREATE TABLE employee( id int, name string, deptId int, age int, salary float ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; DROP TABLE IF EXISTS department; CREATE TABLE department( id int, name string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; LOAD DATA INPATH '/tmp/kylin-test/employee.csv' OVERWRITE INTO TABLE employee; LOAD DATA INPATH '/tmp/kylin-test/department.csv' OVERWRITE INTO TABLE department; --- 向hive 中 到如數據 hive -f create_table.sql
點擊 Data_Source 加載 hive 中的 表
加載 department,employee 表 點擊:sync 同步表
建立model,入project的名稱和描述: kylin_test_table_moder
選擇建立moder 的表 與lookup table
選擇維度字段
保存模型moder
建立cube
選擇保存好moder
next -> add Dimensions
next--> 添加 bluk add Measure
next
next
next
save ---> yes
build --->構建cube
yes
開始構建cube 這步 要消耗很長時間,具體 看 硬件配置
構建完成
點擊:insight 進行查詢測試: 查詢測試: select count(*) from department;
kylin 與hive 查詢對比 統計各部門員工薪資總和: select d.ID,sum(e.SALARY) as salary from EMPLOYEE as e left join DEPARTMENT as d on e.DEPTID=d.id group by d.ID order by salary desc
kylin 查詢
hive 查詢
kylin 查詢 只須要 0.48s hive 查詢 須要 113.508s