kylin 用spark创建cube

张映 发表于 2019-11-15

分类目录: hadoop/spark/scala

标签:, ,

kylin的官方文档,做的感觉一般,写的不详细,并且有坑。

spark独立安装,并不想放到kylin文件下,spark的动态资源管理,早已配置,不需要用到kylin动态资源配置参数,为啥没有单独的呢。

1,看本篇文章前,要看以下文章

centos7 hadoop 集群 安装配置
zookeeper hadoop 集群 安装配置
hive 安装配置
centos7 hadoop2.7.7 hbase1.4安装配置详解
spark on yarn 动态资源分配
kylin 集群安装配置

2,用spark创建cube

创建project=>从hive导入数据库=》创建model=》创建cube(Engine Type选择spark

怎么创建就不说了,图形化操作。

3,配置

# vim $KYLIN_HOME/conf/kylin.properties //添加以下内容

kylin.engine.spark-conf.spark.executor.instances=5 //默认40

官方文档有误,说是1其实是40,instances数,根据的硬件来决定多少合适。改完配置后,重新启动kylin

4,上传hbase的jar包到spark

# cd $HBASE_HOME/lib
# hdfs dfs -put hbase* /spark/jars/

这一步,可以解决以下2个错误:

Caused by: java.lang.NoClassDefFoundError: Lorg/apache/hadoop/hbase/metrics/MetricRegistry;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)

Failure task Diagnostics:
Error: java.io.IOException: Exception from org.apache.hadoop.hive.hbase.HBaseSplit
at org.apache.hive.hcatalog.mapreduce.HCatSplit.readFields(HCatSplit.java:152)
at org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:71)
at org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:42)
at org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:372)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:754)

因为要用到hbase,所以要让spark能够调用到hbase的jar包

5,build cube

在kylin.server.mode=all(kylin的主节点),操作:

# tail -f $KYLIN_HOME/logs/kylin.log

打开日志后,在点build,这样可以了解到build过程中的相关操作,以及错误信息。

kylin spark任务

kylin spark任务

kylin cube ready

kylin cube ready

kylin monitor查看

kylin monitor查看



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/hadoop/2236.html