新手入門必備:kylin安裝教程介紹!
1. 背景
最近在學習kylin,在安裝的時候遇到一些坑,特意記錄起來,也希望同樣在學習kylin的人,少踩一些坑(要是連安裝都過不去,還怎麼學!!!)。
2. 環境
我選的kylin版本是1.5.4,因為買了一本叫《Apache kylin權威指南》,書中以1.5.x為藍本,為了避免少踩坑,保持和書中版本一致。
關於kylin安裝環境,參考 ,下面是我自己的環境,只是為了學習,所有的安裝都是偽分散式的,也沒有關注高可用
-
Ubuntu 14.04.5 LTS
-
hadoop-2.7.1.tar.gz
-
jdk-8u172-linux-x64.tar.gz
-
hbase-1.2.5-bin.tar.gz
-
apache-kylin-1.5.4-HBase1.x-bin.tar.gz
-
apache-hive-1.2.1-bin.tar.gz
特別注意點 :
-
kylin的版本要和hbase的版本對應,具體參考官網說明( ),其實kylin打包的名字也能看出來
-
注意hadoop和hbase的版本( )
-
jdk和hbase的版本( )
-
hive和jdk版本( )
-
最好在linux環境下安裝,在mac下,啟動kylin的時候,指令碼會報錯,當然可以改指令碼 ( )。此外,在Ubuntu下安裝也不省心,啟動kylin也會報錯,改指令碼吧。那麼,最好使用centos,我嘗試了,不會報錯。
3. 安裝
-
下載安裝包,這個連結可以下載到apache所有的安裝包,但速度不快,有些找不到的安裝包,可以在這裡下載( ),解壓
-
設定環境變數
export JAVA_HOME=/root/jdk1.8.0_172 export HADOOP_HOME=/root/hadoop-2.7.1 export HIVE_HOME=/root/hive-1.2.1 export HBASE_HOME=/root/hbase-1.2.5 export KYLIN_HOME=/root/kylin-1.5.4 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$KYLIN_HOME/bin
-
安裝hadoop,主要編輯的檔案有:core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml、yarn-site.xml(都在$HADOOP_HOME/etc/hadoop目錄內)( )
然後,format namenode
bin/hdfs namenode -format
,啟動hdfssbin/start-dfs.sh
,啟動yarnsbin/start-yarn.sh
,
可以查namenode的情況, 可以檢視resourcemanager情況
-
ssh to localhost without a passphrase, execute the following commands
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
-
hadoop-env.sh,加一行JAVA_HOME
export JAVA_HOME=/root/jdk1.8.0_172
-
core.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/root/tmp</value> </property> </configuration>
-
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
-
mapred-site.xml:jobhistory記得也要配置,我之前沒有配置,導致使用kylin的sampldata構建cube失敗
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>localhost:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>localhost:19888</value> </property> </configuration>
-
yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
安裝hive:主要編輯的檔案為hive-site.xml,此檔案透過copy hive-default.xml.template而來( )
-
在hdfs上面建立目錄
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp $ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
-
修改hive-site.xml,主要改的地方為
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> </property>
上面就是使用mysql儲存hive的後設資料,如果出現SSL問題,就把useSSL置為false, 特別注意,不要使用預設的derby,否則在執行kylin的sampledata時,無法在hive中建立表 ,此外,還需要把hive-site.xml中的 s y s t e m : j a v a . i o . t m p d i r 和 {system:user.name}分別替換成/tmp和${user.name},當然還需要把mysql-connector-java.x.jar二方包加入hive的lib目錄中, 特別注意,使用5.x版本,不要使用6.x版本 。最後,執行
bin/hive
安裝hbase:主要修改的檔案為hbase-env.sh、hbase-site.xml( )
-
修改hbase-env.sh,新增
export JAVA_HOME=/root/jdk1.8.0_172
-
修改hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/root/tmp/hbase/zookeeper</value> </property> </configuration>
特別注意,對於偽分散式安裝,hbase.cluster.distributed要設定為true。此外,這裡使用hbase內建的zookeeper。 最後,執行bin/satrt-hbase.sh,啟動hbase
安裝kylin
-
修改check-env.sh:可以先執行
bin/check-env.sh
,一般來說配置了上面所述的環境變數,是可以透過check,但是這個指令碼在mac和ubuntu下執行還是有問題,mac下的問題我沒有解決,Ubuntu下面問題解了。原因是get-properties.sh
內容在Ubuntu下執行有問題。不過在centos下沒有這個問題( )## 原始檔案 if [ $# != 1 ] then echo 'invalid input' exit -1 fi IFS=$'\n' result= for i in `cat ${KYLIN_HOME}/conf/kylin.properties | grep -w "^$1" | grep -v '^#' | awk -F= '{ n = index($0,"="); print substr($0,n+1)}' | cut -c 1-` do : result=$i done echo $result
## 修改後的檔案 if [ $# != 1 ] then echo 'invalid input' exit -1 fi #IFS=$'\n' result=`cat ${KYLIN_HOME}/conf/kylin.properties | grep -w "^$1" | grep -v '^#' | awk -F= '{ n = index($0,"="); print substr($0,n+1)}' | cut -c 1-` #for i in `cat ${KYLIN_HOME}/conf/kylin.properties | grep -w "^$1" | grep -v '^#' | awk -F= '{ n = index($0,"="); print substr($0,n+1)}' | cut -c 1-` #do # : # result=$i #done echo $result
-
我目前使用的是apache-kylin-1.5.4-HBase1.x-bin.tar.gz版本,此版本在conf目錄下,把壓縮相關的配置註釋了,包括kylin_hive_conf.xml、kylin_job_conf_inmem.xml、 kylin_job_conf.xml、kylin.properties,我之前用1.5.3並沒有註釋掉,導致在執行構建cube是出現snappy不存在問題。
# Compression codec for htable, valid value [none, snappy, lzo, gzip, lz4] # 1.5.3預設未snappy,但是我使用的hadoop的並沒有snappy壓縮功能,所以要麼把壓縮相關的配置註釋掉,或者重新打包hadoop kylin.hbase.default.compression.codec=none
之後,執行
bin/kylin.sh satrt
,啟動成功後,訪問 ,使用者名稱是ADMIN,密碼是KYLIN。然後可以執行bin/sample.sh
,體驗下kylin,執行完sample.sh
後重啟kylin,就可以build cube了。
3. 其他
-
最好使用linux
-
執行sample.sh後hive無法找到表 不要使用derby,使用mysql
-
build cube出現
Unexpected exception: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support.
-
重新編譯hadoop,讓其支援snappy: https://blog.csdn.net/wzy0623/article/details/51263041
-
關閉kylin的壓縮配置:
【本文來源於雲棲社群,原文連結:,作者: 徐潔陽 】
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2169014/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Apache Kylin 入門 3 - 安裝與配置Apache
- ccs的介紹,安裝和使用入門
- MongoDB入門(介紹、安裝、增刪改查)MongoDB
- Zookeeper入門學習--01介紹及安裝
- Yocto專案介紹及入門 -- 嵌入師工程師必備利器工程師
- 檔案系統 FTP Ubuntu 安裝入門介紹FTPUbuntu
- Android入門教程 | AsyncTask 使用介紹Android
- 軟路由新手入門教程(從概念-選型-接線-安裝)路由
- gitbook 入門教程之外掛介紹Git
- React新手入門 教程React
- Jupyter Notebook介紹、安裝及使用教程
- SSH Config教程之基礎知識介紹-必備技巧
- DKHadoop安裝的環境準備介紹Hadoop
- Day148.Redis入門介紹、安裝、基本知識 -RedisRedis
- Linux入門必備Linux
- Phalcon入門教程之安裝
- Postman安裝及入門教程Postman
- 新手入門,webpack入門詳細教程Web
- Jwt的新手入門教程JWT
- PbootCMS新手初次安裝教程boot
- DQN(Deep Q-learning)入門教程(零)之教程介紹
- Android Camera 開發你該知道的祕密㊙️-新手入門必備Android
- npm私服安裝教程 – verdaccio 入門NPM
- Android入門教程 | mmap 檔案對映介紹Android
- Linux入門教程之sed 命令常用操作介紹Linux
- Mybatis 入門介紹MyBatis
- Rocketmq 入門介紹MQ
- libevent入門介紹
- Django 入門介紹Django
- linux介紹(入門)Linux
- Nginx 入門介紹Nginx
- rollup入門介紹
- Golang 新手教程:入門速成指南Golang
- Django新手圖文入門教程Django
- Mac新手的入門教程(一)Mac
- Apache Kafka教程--Kafka新手入門ApacheKafka
- SketchUp 2020安裝教程和SketchUp 2020功能介紹
- Kylin安裝與使用