본문 바로가기
Programming/Hadoop

[OLAP] 빅데이터 다차원 분석 솔루션 KYLIN - 설치편

by 제타 2018. 4. 15.
반응형

OLAP과 관련해서 kylin을 테스트해 볼 상황이 생겼다

그래서 kylin을 올려서 얼마나 데이터 조회에 효율이 좋은지 평가해보고자 설치를 하게 되었다.

아주 간단하다


참고로 키린은 하둡 데이터를 hive에 올려놓고 키린 큐브를 만들어서(미리 집계를 해놓고) hbase에 올려놓는다.

그리고 사용자는 집계된 hbase 테이블을 select 하게 되는 것이다.


현재 세팅

NameNode 2대

DataNode 8대

HDP(호튼웍스 데이터 플랫폼) 2.4 버전


KYLIN 2.2.0 버전

키린의 장점은 구성 측면에서 마스터노드에 파일을 가져와서 실행만 하면 된다는 것이다.

(마치 이클립스처럼 따로 설치가 필요하지 않고 바로 데몬이 올라간다.)


1. 먼저 키린을 올리기

마스터노드 특정 폴더에 rz 명령어를 사용해서 apache-kylin-2.2.0-bin-hbase1x.tar.gz 파일을 가져왔다.

[kylin@bidevsnapshotm2 kylin]# pwd

/data01/program/kylin

[kylin@bidevsnapshotm2 kylin]# ls

apache-kylin-2.2.0-bin-hbase1x.tar.gz

2. 특정 폴더에 압축을 풀고 kylin 폴더를 만들어서 링크시킨다

여기까지 하면 링크된 kylin/bin/kylin.sh start를 통해서 키린을 올릴 수 있다.

하지만 스파크를 활용하기 위해서는 2.버전부터는 별도로 세팅이 필요하다.

3. Hadoop에서 보는 디렉토리는 /etc/hadoop/conf인데 kylin은 hdfs, yarn, hive, hbase에도 접근해야되서 저 디렉토리에 필요한 파일이 없을 수도 있다.

따라서 우리가 필요한 파일 core-site.xml, hdfs-site.xml, yarn-site.xml, hive-site.xml 및 hbase-site.xml을 새 폴더에 갖다놓고 경로를 지정해줘야 한다.


[kylin@bidevsnapshotm2 sw]# mkdir $KYLIN_HOME/hadoop-conf

[kylin@bidevsnapshotm2 sw]# ln -s /etc/hadoop/conf/core-site.xml $KYLIN_HOME/hadoop-conf/core-site.xml 

[kylin@bidevsnapshotm2 sw]# ln -s /etc/hadoop/conf/hdfs-site.xml $KYLIN_HOME/hadoop-conf/hdfs-site.xml 

[kylin@bidevsnapshotm2 sw]# ln -s /etc/hadoop/conf/yarn-site.xml $KYLIN_HOME/hadoop-conf/yarn-site.xml 

[kylin@bidevsnapshotm2 sw]# ln -s /etc/hbase/2.6.3.0-234/0/hbase-site.xml $KYLIN_HOME/hadoop-conf/hbase-site.xml 

[kylin@bidevsnapshotm2 sw]# cp /etc/hive/2.6.3.0-235/0/hive-site.xml $KYLIN_HOME/hadoop-conf/hive-site.xml 

[kylin@bidevsnapshotm2 sw]# vi $KYLIN_HOME/hadoop-conf/hive-site.xml


hadoop-conf/hive-site.xml의 hive.execution.engine 부분의 값을 tez에서 mr로 수정한다



4. $KYLIN_HOME/conf의 kylin.properties에서 이제 hadoop-conf를 알게 해야한다.

모두 주석이 되어있어 디폴트로 돌아가지만 다음과 같이 수정한다.

kylin.properties에서 kylin.env.hadoop-conf-dir=/data01/sw/kylin/hadoop-conf 로 수정한다.


#### SPARK ENGINE CONFIGS ###

#

## Hadoop conf folder, will export this as "HADOOP_CONF_DIR" to run spark-submit

## This must contain site xmls of core, yarn, hive, and hbase in one folder

kylin.env.hadoop-conf-dir=/data01/sw/kylin/hadoop-conf

#

## Estimate the RDD partition numbers

#kylin.engine.spark.rdd-partition-cut-mb=10

#

## Minimal partition numbers of rdd

#kylin.engine.spark.min-partition=1

#

## Max partition numbers of rdd

#kylin.engine.spark.max-partition=5000

#

## Spark conf (default is in spark/conf/spark-defaults.conf)

kylin.engine.spark-conf.spark.master=yarn

kylin.engine.spark-conf.spark.submit.deployMode=cluster

kylin.engine.spark-conf.spark.yarn.queue=default

kylin.engine.spark-conf.spark.executor.memory=1G

kylin.engine.spark-conf.spark.executor.cores=2

kylin.engine.spark-conf.spark.executor.instances=1

kylin.engine.spark-conf.spark.eventLog.enabled=true

kylin.engine.spark-conf.spark.eventLog.dir=hdfs\:///kylin/spark-history

kylin.engine.spark-conf.spark.history.fs.logDirectory=hdfs\:///kylin/spark-history

#kylin.engine.spark-conf.spark.hadoop.yarn.timeline-service.enabled=false

#


jar cv0f spark-libs.jar -C $KYLIN_HOME/spark/jars/ .

hadoop fs -mkdir -p /kylin/spark/

hadoop fs -put spark-libs.jar /kylin/spark/



5. 반복적으로 스파크 jar를 yarn에 업로드하는 것을 피하기 위해서 우리는 한번 jar's HDFS 위치를 설정해줘야한다.

kylin.properties에서 다음과 같이 설정한다.


## manually upload spark-assembly jar to HDFS and then set this property will avoid repeatedly uploading jar at runtime

kylin.engine.spark-conf.spark.yarn.archive=hdfs://bisnapshotm01.ssgbi.com:8020/kylin/spark/spark-libs.jar

##kylin.engine.spark-conf.spark.io.compression.codec=org.apache.spark.io.SnappyCompressionCodec

#

## uncomment for HDP

kylin.engine.spark-conf.spark.driver.extraJavaOptions=-Dhdp.version=current

kylin.engine.spark-conf.spark.yarn.am.extraJavaOptions=-Dhdp.version=current

kylin.engine.spark-conf.spark.executor.extraJavaOptions=-Dhdp.version=current

#

#


6. 키린 구동

[kylin@bisnapshotm02 bin]$ ./kylin.sh start


반응형