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过程中的相关操作,以及错误信息。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/hadoop/2236.html