1. 程式人生 > >Apache Kylin 部署之不完全指南

Apache Kylin 部署之不完全指南

1. 引言

Apache Kylin(麒麟)是由eBay開源的分散式分析引擎,提供Hadoop之上的SQL查詢介面及多維分析(OLAP)能力以支援超大規模資料。底層儲存用的是HBase,資料輸入與cube building用的是Hive,中間資料儲存用的是HDFS。搭建環境:

Kylin version = 1.2
Hive version = 0.13.1-cdh5.3.2
HBase version = 0.98.6+cdh5.3.2
Hadoop version = 2.5.0-cdh5.3.2

本文提供的是半分散式安裝——HBase環境只在本機搭建;已略去Hadoop環境搭建過程,將主要介紹Hive、HBase、Kylin的搭建步驟。

2. Hive部署

解壓包tar zxvf hive-0.13.1-cdh5.3.2.tar.gz,然後mv到指定目錄mv hive-0.13.1-cdh5.3.2 <desc-dir>/,指定HIVE_HOME,在.bashrc中新增

export HIVE_HOME=/<desc-dir>/hive-0.13.1-cdh5.3.2/
export PATH=$PATH:$HIVE_HOME/bin:

source後,可以輸入hive命令進行表操作;但是還未配置Hive的元資料庫。cd ${HIVE_HOME}/conf,建立配置檔案cp hive-default.xml.template hive-site.xml

,在hive-site.xml檔案中配置mysql作為元資料庫,需修改以下內容:

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username to use against metastore database</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password to use against metastore database</description>
</property>

元資料庫在mysql中的database為hive,Driver為com.mysql.jdbc.Driver,使用者名稱與密碼均為hive;需在mysql中配置Hive元資料庫:

mysql -u root -p

mysql> CREATE DATABASE hive;

-- 建立 hive 使用者,並賦予訪問 hive 資料庫的許可權
mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> FLUSH PRIVILEGES;

-- 設定 binary log 的格式:
mysql> set global binlog_format=MIXED;

此外還需要新增mysql jdbc jar 包:

tar xvzf mysql-connector-java-5.1.37.tar.gz
mv mysql-connector-java-5.1.37/mysql-connector-java-5.1.37-bin.jar $HIVE_HOME/lib

Kylin用 HCatalog 讀取Hive表的,而HCatalog用 property hive.metastore.uris 建立HiveMetaStoreClient 得到元資訊。因此,我們還需修改hive-site.xml:

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://localhost:9083</value>
  <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

開啟metastore 服務:

nohup hive --service metastore -p 9083 &

3. HBase 部署

與Hive 搭建步驟相類似,解壓檔案mv到指定目錄,然後在.bashrc中配置環境變數:

tar zxvf hbase-0.98.6-cdh5.3.2.tar.gz
mv hbase-0.98.6-cdh5.3.2 <desc-dir>/
--.bashrc
export HBASE_HOME=/<desc-dir>//hbase-0.98.6-cdh5.3.2/
export PATH=$PATH:$HIVE_HOME/bin:$HBASE_HOME/bin

以root許可權開啟HBase服務:

sudo start-hbase.sh

4. Kylin 部署

解壓檔案mv到指定目錄,然後在.bashrc中配置環境變數KYLIN_HOME。此外,還需要修改Kylin的部分配置資訊,cd ${KYLIN_HOME}/conf 修改kylin.properites:

#部署伺服器ip,便於其他機器訪問
kylin.rest.servers=ip:7070

#kylin在hdfs儲存路徑
kylin.hdfs.working.dir=<hdfs-dir>

#依賴jar包地址
kylin.job.mr.lib.dir=<lib hdfs-dir>

在每一臺機器上可能Hive的部署目錄不一致,導致諸如此類exception(因此需要配置 kylin.job.mr.lib.dir):

java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.mapreduce.HCatInputFormat not found
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2199)
    at org.apache.hadoop.mapreduce.task.JobContextImpl.getInputFormatClass(JobContextImpl.java:184)
...

kylin_job_conf.xml配置佇列許可權:

<property>
    <name>mapreduce.job.queuename</name>
    <value>...</value>
    <description>the queue name</description>
</property>

(最新版本1.5.1同時需要在hive-site.xml 新增)配置完成後,執行./bin/find-hive-dependency.sh看Hive環境是否配置正確,可能需要手動設定HCAT_HOME;./bin/kylin.sh start即可開啟kylin服務了。

番外

Kylin如何新增登入使用者

官方doc給出解決思路:Kylin是採用Spring security framework做使用者認證的,需要配置${KYLIN_HOME}/tomcat/webapps/kylin/WEB-INF/classes/kylinSecurity.xml 的sandbox,testing部分

<beans profile="sandbox,testing">
    <scr:authentication-manager alias="authenticationManager">
        <scr:authentication-provider>
            <scr:user-service>
                ...
                <scr:user name="ADMIN" password="$2a$10$o3ktIWsGYxXNuUWQiYlZXOW5hWcqyNAFQsSSCSEWoC/BRVMAUjL32" authorities="ROLE_MODELER, ROLE_ANALYST, ROLE_ADMIN" />
                <scr:user name="xxx" password="xxx" authorities="ROLE_MODELER, ROLE_ANALYST, ROLE_ADMIN" />
                ...

password需要spring加密:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>4.0.0.RELEASE</version>
</dependency>
String password = "123456"; 
org.springframework.security.crypto.password.PasswordEncoder encoder
   = new org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder();
String encodedPassword = encoder.encode(password);  
System.out.print(encodedPassword);

相關推薦

Apache Kylin 部署完全指南

1. 引言 Apache Kylin(麒麟)是由eBay開源的分散式分析引擎,提供Hadoop之上的SQL查詢介面及多維分析(OLAP)能力以支援超大規模資料。底層儲存用的是HBase,資料輸入與cube building用的是Hive,中間資料儲存用的是HDFS。搭建環境: Kylin version =

Laravel(PHP)使用Swagger生成API文件完全指南 - 基本概念和環境搭建 - 簡書

在PHPer中,很多人聽說過Swagger,部分人知道Swagger是用來做API文件的,然而只有少數人真正知道怎麼正確使用Swagger,因為PHP界和Swagger相關的資料實在是太少了。所以鄙人斗膽一試,希望能以本文幫助到大家瞭解Swagger,從此告別成天用Word、Markdown折騰API文件的日

Laravel(PHP)使用Swagger生成API文檔完全指南 - 基本概念和環境搭建 - 簡書

function 閱讀 編程語言 文字 formdata 自動 tom dev 開始 在PHPer中,很多人聽說過Swagger,部分人知道Swagger是用來做API文檔的,然而只有少數人真正知道怎麽正確使用Swagger,因為PHP界和Swagger相關的資料實在是太少

RMAN備份恢復完全恢復

ORACLE不完全恢復 基於時間的不完全恢復 恢復要求:a、資料庫開啟歸檔切要有最近的有效rman全備。b、要有需要恢復到的準確時間點。 1、 做一個rman全備 RMAN>backup database; 2、 構建幾個狀態 在資料庫裡建立scott.t1並插入資料記錄狀態為a,記錄時間t1。 在資料

Bullet物理引擎完全指南 Bullet Physics Engine not complete Guide

                前言    Bullet據稱為遊戲世界佔有率為第三的物理引擎,也是前幾大引擎目前唯一能夠找到的支援iPhone,開源,免費(Zlib協議,非常自由,且商業免費)的物理引擎,但是文件資料並不是很好,Demo雖然多,但是主要出於特性測試/展示的目的,會讓初學者無從看起,一頭霧水。我

高效使用Pycharm完全指南

定位 Search EverywhereCtrl+游標最近開啟的檔案目錄樹的“雷達”查詢補全 Tab萬能的Alt-EnterSurroud withEmmet編輯 BasicExtend Select

ctf工具完全指南

最近接連趕上了ssctf和hctf,對我來說算是一償夙願,總算從在網站上做做以前的題,到參加比賽,正式邁入圈內了。雖然學校內的氛圍不濃厚,但總算也能拉起一支能參賽的隊伍,第一次正式參賽的結果算是讓我挺滿意的。戰後是時候來個總結了。 經驗上的差距讓一些本來可以做的題目也

Chrome開發者工具完全指南(四、效能進階篇)

前言   Profiles面板功能的作用主要是監控網頁中各種方法執行時間和記憶體的變化,簡單來說它就是Timeline的數字化版本。它的功能選項卡不是很多(只有三個),操作起來比較前面的幾塊功能版本來說簡單,但是裡面的資料確很多,很雜,要弄懂它們需要花費一些時間。尤其是在記憶體快照中的各種龐雜的資料。在這篇

Chrome開發者工具完全指南(五、移動篇)

  前面介紹了Chrome開發者工具的大部分內容工具,現在介紹最後兩塊功能Audits和Console面板。一、Audits  Audits面板會針對目前網頁提出若干條優化的建議,這些建議分為兩大類,一類是網路載入效能,另一類是介面效能。首先開下它的主介面。  Audits面板的網路優化建議參照的是雅虎前端工

Chrome開發者工具完全指南(一、基礎功能篇)

  就算你不是一名前端開發工程師,相信你也不會對Chrome瀏覽器感到陌生。根據最新的一份(2015/06)的瀏覽器市場佔有率報告,Chrome近乎佔有瀏覽器天下的半壁江山。簡單、快捷使它成為了新時代人們的新寵。如果你是一名web開發人員,我推薦你使用Chrome。作為前端開發的"IDE",你只需要搭配一個編

Chrome開發者工具完全指南:(三、效能篇)

<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> div{ height: 20px; widows: 20p

Chrome開發者工具完全指南(二、進階篇)

function a () { b(); } function b() { c(); } function c() { //在該處斷點,檢視call stack } a->b->c. call stack 從上到下的順序就是 c

Chrome 控制檯完全指南

Chrome的開發者工具已經強大到沒朋友的地步了,特別是其功能豐富介面友好的console,使用得當可以有如下功效: 更高「逼格」更快「開發除錯」更強「進階級的Frontender」 Bug無處遁形「Console大法好」 console.log 大家都會用log,但鮮有人很好地利用console.err

店家的Apache Kylin 應用

2018年10月Apache Kylin [email protected]杭州站,店+大資料技術總監分享了從傳統資料庫,到使用Apache Kylin,以及升級到 Kyligence Enterprise 的歷程。 原文:http

C++資源完全導引(完整版)

來源:www.csdn.net撰文:曾毅、陶文宣告:本文2004年5月首發於《CSDN開發高手》,版權歸該雜誌與《程式設計師》雜誌社所有。--------------------------------------------------------------------------------  1,前言

c++資源完全導引(全文)

.本文2004年5月首發於《CSDN開發高手》,版權歸該雜誌與《程式設計師》雜誌社所有。雜誌限於篇幅部分內容有所刪節,此處版本為相對完整版本。 .本文為介紹性文章,會隨筆者學習C++語言不斷更新。 前言 無數次聽到“我要開始學習C++!”的吶喊,無數次聽到“C++太複雜了,我真的學不會”的無奈。Stan L

C++資源完全導引 [上]

這個正是我們熟知的Visual Studio 和 Visual Studio.net 2002, 2003以及2005 Whidbey中帶的C++編譯器。由Microsoft公司研製。在Visual Studio 6.0中,因為編譯器有太多地方不能與後來出現的C++標準相吻合而飽受批評(想想你在使用STL的時

C++資源完全導引(轉)

C++資源之不完全導引   1,前言   無數次聽到“我要開始學習C++!”的吶喊,無數次聽到“C++太複雜了,我真的學不會”的無奈。Stan Lippman先生曾在《C++ Primer》一書中指出“C++是最為難學的高階程式設計語言之一”,人們常將“之一”去掉以表達自己對

C++資源完全導引

 撰文/ 曾毅 陶文    最後更新:2004年6月11日                         宣告:            .本文2004年5月首發於《CSDN開發高手》,版權歸該雜誌與《程式設計師》雜誌社所有。雜誌限於篇幅部分內容有所刪節,此處版本為相對完整版

JNI完全指南

JNI不完全指南 1.概述 JNI做為對JVM的補充,可以完成一些遊離於JVM之外的程式碼,完成一些OS嚴重依賴的功能,比如你想自己實現基於IMCP的ping(如果問為什麼,那麼請重新學習一下IP/TCP/Socket)。 JNI包括Java程式碼和Native程式碼,所謂的