`

kylin在aws EMR上的安装

阅读更多

      SHAREit全球累计用户18亿,“双印”市场用户超6亿,月活用户超5亿,覆盖200多个国家和地区,涵盖全球45种语言。稳居Google Play全球总榜Top10,目前已经成为印度、印尼、中东、非洲、俄罗斯等国家和地区的“国民应用”。

      我们作为出海的代表,我们的所有服务都上云,那么大数据平台使用aws EMR,但是我们使用kylin 作为我们奥丁报表平台底层OLAP框架时,发现kylin在EMR上安装时出现一些不兼容及不支持aws glue data catalog,遇到问题,解决问题,关于不支持aws glue data catalog 需要修改源码,参考上一篇博客:https://www.iteye.com/blog/wrn19851021-163-com-2511446。接下来我重难点讲kylin 在EMR上面的安装。

一、集群的安装,采用HBASE集群和SPARK集群分开。

HbaseEMR集群
1、集群配置信息
master配置:
m5.4xlarge * 1(按需方式)
EBS:1024G
core配置:
m5.4xlarge * 5 (按需方式)
EBS:500G
2、软件配置
注意:
HBase存储设置:选择S3根目录:s3://**********/hbaseprod
emr-5.27.0
组件勾选如下:
hadoop 2.8.5
Ganglia 3.7.2
HBase 1.4.10
Hue 4.3.0
HCatalog 2.3.5
Zookeeper 3.4.14
 
3、权限配置参考集群:
主要配置S3的访问权限
4、特别说明的配置项:
集群名称:*************
选择相关的S3的桶的访问权限
配置主节点hadoop用户可以免密登录到子节点 
AWS Glue Data Catalog 设置:勾选
HBase存储设置:
选择S3
根目录:s3://*********/hbaseprod
终止保护:开启(选中)
配置emr标签:sgt:subgroup(标签值同集群名称)
 
SparkEMR集群以及Master镜像
1、集群配置信息:
master配置:
m5.4xlarge * 1(按需方式)
EBS:500G
 
core配置:
m5.4xlarge * 3 (按需方式)
EBS:1024G
task配置:
m4.2xlarge * n  (Spot方式)
EBS:300G
 
2、软件配置:
emr-5.27.0
组件勾选如下:
hadoop 2.8.5
Ganglia 3.7.2
hive 2.3.5
Spark 2.4.4
Tez 0.9.2
HCatalog 2.3.5
Zookeeper 3.4.14
3、权限配置参考集群:
只要配置S3的桶的访问权限
 
4、特别说明的配置项:
集群名称:***************
 
可对 ***************** 和 **************** 桶进行读写
配置主节点hadoop用户可以免密登录到子节点 
AWS Glue Data Catalog 设置:勾选
终止保护:开启(选中)
配置emr标签:sgt:subgroup(标签值同集群名称)
 
5、SparkEMR集群Master主节点镜像
通过Master节点做个2个镜像。
这两个镜像可以访问SparkEMR集群和HBaseEMR集群。
这两个镜像和SparkEMR集群有同样的VPC与子网。
开通公网IP并加入白名单。
 
注意:以上申请的HBase集群和SparkEMR集群配置网络互通
hbase集群使用S3作为存储元数据,这样只要S3目录存在,那么数据不丢失。
 
二、kylin的安装
1.下载软件
<!--?xml version="1.0" encoding="UTF-8"?-->
2.建目录
使用root用户  cd  /usr/local
mkdir  -p kylin
拷贝kylin软件包到 
 /usr/local/kylin/apache-kylin-3.0.0-SNAPSHOT-bin
修改文件夹所属组
chown  -R  hadoop:hadoop  /usr/local/kylin
切换用户
sudo su hadoop 
3.配置用户的全局变量
vi .bashrc
#####hadoop spark  kylin#########
export HIVE_HOME=/usr/lib/hive
export HADOOP_HOME=/usr/lib/hadoop
export HBASE_HOME=/usr/lib/hbase
export SPARK_HOME=/usr/lib/spark
##kylin
export KYLIN_HOME=/usr/local/kylin/apache-kylin-3.0.0-SNAPSHOT-bin
export HCAT_HOME=/usr/lib/hive-hcatalog
export KYLIN_CONF_HOME=$KYLIN_HOME/conf
export tomcat_root=$KYLIN_HOME/tomcat
export hive_dependency=$HIVE_HOME/conf:$HIVE_HOME/lib/*:$HIVE_HOME/lib/hive-hcatalog-core.jar
export PATH=$KYLIN_HOME/bin:$PATH
// 生效
source   .bashrc
4.配置kylin.property
hive自带的jackson-datatype-joda-2.4.6.jar 包跟kylin/tomcat/weapps/kylin/WEB-INF/lib 中的jackson-datatype-joda-2.9.5.jar冲突,所以需要修改hive中的包
mv $HIVE_HOME/lib/jackson-datatype-joda-2.4.6.jar $HIVE_HOME/lib/jackson-datatype-joda-2.4.6.jar.back
1)配置 spark引擎要运行的 jar 包,这个 jar 包需要自己生成且上传到 HDFS 。
 新建/usr/local/kylin/apache-kylin-3.0.0-SNAPSHOT-bin/spark_jars
拷贝需要的jar包到spark_jars目录   
 cp  /usr/lib/spark/jars/*.jar   cp /usr/lib/hbase/lib/*.jar     /usr/local/kylin/spark_jars
打包
jar cv0f spark-libs.jar -C /usr/local/kylin/spark_jars/ ./
配置 mr依赖的包
cp  /usr/lib/hive/lib/*.jar  /usr/local/kylin/mr_lib    
cp /usr/lib/hbase/lib/*.jar    /usr/local/kylin/mr_lib
kylin.job.mr.lib.dir=/usr/local/kylin/mr_lib
2)上传到hdfs
hdfs dfs -mkdir -p /kylin/spark/ 
hdfs dfs -put spark-libs.jar /kylin/spark
#####包冲突
删除 mr_lib spark_jars 低版本netty-all-*****.Final.jar
## The metadata store in hbase
kylin.metadata.url=kylin_metadata@hbase
## Working folder in HDFS, better be qualified absolute path, make sure user has the right permission to this directory
kylin.env.hdfs-working-dir=s3://shar********/kylin
## DEV|QA|PROD. DEV will turn on some dev features, QA and PROD has no difference in terms of functions.
kylin.env=DEV
## kylin zk base path
kylin.env.zookeeper-base-path=/kylin
## Kylin server mode, valid value [all, query, job]
kylin.server.mode=all
## Display timezone on UI,format like[GMT+N or GMT-N]
kylin.web.timezone=GMT+8
## Hive database name for putting the intermediate flat tables
kylin.source.hive.database-for-flat-table=kylin_flat_db_test1
## Whether redistribute the intermediate flat table before building
kylin.source.hive.redistribute-flat-table=false
## The storage for final cube file in hbase
kylin.storage.url=hbase
## The prefix of hbase table
kylin.storage.hbase.table-name-prefix=KYLIN_    
## HBase Cluster FileSystem, which serving hbase, format as hdfs://hbase-cluster:8020
## Leave empty if hbase running on same cluster with hive and mapreduce
kylin.storage.hbase.cluster-fs=s3://sha****/hbase
#### 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=/etc/hadoop/conf
#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.driver.memory=2G
kylin.engine.spark-conf.spark.executor.memory=18G
kylin.engine.spark-conf.spark.executor.instances=6
kylin.engine.spark-conf.spark.yarn.executor.memoryOverhead=1024
kylin.engine.spark-conf.spark.shuffle.service.enabled=true
kylin.engine.spark-conf.spark.eventLog.enabled=true
## 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://ip-*******:8020/kylin/spark/spark-libs.jar
############define###########
kylin.job.jar=/usr/local/kylin/apache-kylin-3.0.0-SNAPSHOT-bin/lib/kylin-job-3.0.0-SNAPSHOT.jar
kylin.coprocessor.local.jar=/usr/local/kylin/apache-kylin-3.0.0-SNAPSHOT-bin/lib/kylin-coprocessor-3.0.0-SNAPSHOT.jar
kylin.job.mr.lib.dir=/usr/local/kylin/mr_lib
kylin.query.max-return-rows=10000000
5.配置*.XML文件
kylin_job_conf.xml,配置zk地址,zk地址从hbase/conf/hbase-site.xml中获取
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>ip-17*****.internal</value>
  </property>
<property>
        <name>mapreduce.task.timeout</name>
        <value>3600000</value>
        <description>Set task timeout to 1 hour</description>
    </property>
kylin_hive_conf.xml,配置metastore地址
<property>
   <name>hive.metastore.uris</name>
</property>
kylin.sh 文件开头增加
export HBASE_CLASSPATH_PREFIX=${tomcat_root}/bin/bootstrap.jar:${tomcat_root}/bin/tomcat-juli.jar:${tomcat_root}/lib/*:$hive_dependency:$HBASE_CLASSPATH_PREFIX
/usr/lib/hive/conf/hive-site.xml中配置不使用aws glue 共享数据源,注释掉一下配置项
<!--
  <property>
    <name>hive.metastore.client.factory.class</name>
    <value>com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory</value>
  </property>
-->
如果使用aws glue data catalog, 那么不用注释掉hive.metastore.client.factory.class
需要修改代码,具体详见
6.配置hbase rpc 超时时长
在hbase-site.xml文件中增加:
<property>
    <name>hbase.rpc.timeout</name>
    <value>3600000</value>
  </property>
7.启动hadoop  historyserver
./mr-jobhistory-daemon.sh     start     historyserver  
8.启动kylin 服务
./kylin.sh start 
 

  有问题可以加我的QQ:250762323 进行交流。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics