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>
<value>thrift://ip-172*******internal:9083</value>
</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 进行交流。
相关推荐
deb包完美进行离线安装docker,适用于ubuntu系统,Kylin系统,给出安装过程有可能缺少库依赖的解决办法,以后对于deb包缺少以赖库都可以用此方法
上海技术峰会 ,基于 AWS 和 Apache Kylin 实现面向数百万用户的数据分析服务。
Apache Kylin安装部署Apache Kylin安装部署Apache Kylin安装部署
为个人方便后期巩固安装配置kylin,其中包括相对应的habse安装包,安装步骤,kylin安装的测试题
kylin 3.3探针软件安装调试手册
kylin 系统盘制作及安装说明,
此文档是kylin的详细讲解指南,我们共同进步。
Ubuntu Kylin 14.10 快速安装指南
Kylin及其安装文档
所有清单: binutils-common; binutils-x86-64-linux-gnu; binutils; cpp-7; g++-7; gcc-7-base_; gcc-7; gcc-8-base; libasan4; libatomic1; libbinutils; libc-bin; libc-dev-bin; libc6-dev;...
Kylin-Desktop-V10-GFB-Release-020-ARM64—g++ 安装包 Kylin-Desktop-V10-GFB-Release-020-ARM64—g++ 安装包 Kylin-Desktop-V10-GFB-Release-020-ARM64—g++ 安装包 Kylin-Desktop-V10-GFB-Release-020-ARM64—g++...
内有文档,详细准确,亲测,总结而得
Apache Kylin是一个开源的分布式分析引擎,为大数据开发人员提供Hadoop/Spark之上的SQL查询接口,以及支持超大规模数据集的多维分析能力,在大数据领域有着广泛的应用,是大数据开发人员的必备技能之一。 本套视频...
基于AWS和Apache Kylin实现数据分析服务.pptx
Kylin在小米大数据中的应用
apache-kylin-4.0.1 源码所需jar包,一键打包。 只包含jar,不包括js相关内容 内部列表: kylin-shaded-guava-3.1.0.jar commons-configuration-1.6.jar RoaringBitmap-0.7.36-os-kylin-r1.jar commons-compiler-...
openssh 9.6 rpm包直接安装包含一键安装脚本,kylin V10 Liunx
Apache-Kylin在贝壳找房的实践 Apache-Kylin在贝壳找房的实践
存储引擎:构建好的Cube以Key-Value形式存储在HBase中,通过优化Rowkey加速查询。每一种维度的排列组合计算结果被保存为一个物化视图,叫做Cuboid. 优化算法:Cube本身是空间换时间,也会根据算法,剪枝优化掉一些...
apache Kylin在58集团的实践和应用. ppt 介绍