社區提供的讀寫分離架構圖以下:
經過架構圖能夠看到Kylin會訪問兩個集羣的HDFS,建議兩個集羣的NameService務必不能相同,尤爲是集羣啓用NameNode HA時,相同的NameService會致使組件在跨集羣訪問HDFS時因沒法區分NameService而出現問題。javascript
兩個集羣:
cluster1(hive集羣):hdfs.hive,yarn,zookeeper,mr
cluster2(hbase集羣):hdfs,hbase,zookeeper,yarn,kylin
首先配一個KYLIN_HOME,配到KYLIN的主目錄
咱們的kylin安裝在cluster2上,只要在cluster2上面配置環境變量就能夠了。
在cluster2上要配置不少cluster1的hadoo參數
我單首創建一個目錄放在$KYLIN_HOME下,叫hadoop_conf,裏面須要有這些文件css
下面解釋一下哪些用cluster1的參數,哪些文件用cluster2的參數.。若是用cluster1的參數,直接從cluster1拷貝過來就好了。
這些文件都在$KYLIN/HOME/hadoop_conf這個目錄下
core-site.xml----cluster1 這個裏面配置了hdfs的地址
hbase-site.xml---cluster2
hdfs-site.xml----cluster2 這個裏面配置了nameservice的參數,沒有它沒法解析nameservice
hive--site.xml---cluster1
mapred-site.xml--cluster1html
咱們用kylin用戶去啓動及服務,因此配置一下kylin用戶環境變量,修改 ~/.bashrc 這個文件
添加上這些
export HBASE_CONF_DIR=$KYLIN/HOME_hadoop_conf
export HIVE_CONF=$KYLIN/HOME_hadoop_conf
export HADOOP_CONF_DIR=$KYLIN_HOME/hadoop_conf
!!!!!!!!!!!!!!
export HBASE_CONF_DIR=$KYLIN_HOMEhadoop_conf
這個HBASE_CONF_DIR很重要,由於kylin是用過HBASE去讀取hdfs--site和core-site.xml這兩個文件從而讀取HDFS的環境變量的,不加的話默認會讀CDH目錄下HBASE的配置,我由於這個東西卡了好幾天,加了好幾天班才發現。好想哭。。。。而KYLIN官方根本沒有寫,坑爹啊。。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!前端
配置conf/kylin.properties和tomcat/conf/server.xml
conf/kylin.properties根據本身須要去配置,主要配置下hive和hbase的相關參數,
tomcat/conf/server.xml主要有2個地方須要注意:
1.keystore
<Connector port="7443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="conf/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
須要去生成相應的keystore文件,或者直接把這段註釋掉java
2.我在測試環境上沒有修改這個能夠正常運行,在生產機部署的時候,打開前端的ui,出現沒法加載models,配置,和環境變量的問題,同時會在前臺彈出「failed to take actions」的提示
通過好幾天的查找,發現是前端獲取資源在解壓縮的時候出現問題,把壓縮關掉
在
<Connector port="7070" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="7443"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,application/javascript,application/json,text/css,text/plain"
/>中
把compression="on"改成 compression="off"sql
修改KYLIN_HOME/conf/kylin.perproties,apache
kylin.source.hive.client=beelinejson
##jdbc的url改成cluster1的hive地址
kylin.source.hive.beeline-params=-n root --hiveconf hive.security.authorization.sqlstd.confwhitelist.append='mapreduce.job.|dfs.' -u jdbc:hive2://stream3:25002tomcat
##改成cluster2的hdfs地址
kylin.storage.hbase.cluster-fs=hdfs://stream-master1:8020bash
另外我在build任務過程當中第16步失敗,緣由是分配資源不夠,在KYLIN_HOIME/conf/kylin_job_conf.xml中添加一下mapreduce.map.memory.mb和mapreduce.reduce.memory.mb的這兩個參數,把值配大一點就行了。
而後啓動就能夠了。