Kylin优化的角度很多,一边做一边更新。
Kylin介绍:http://kylin.apache.org/cn/ 中文文档,比较友好。
Kylin搭建:https://blog.csdn.net/xiaozhaoshigedasb/article/details/87942242
首先,就是资源方面,实际上对于Kylin的计算来说,要求的资源不算多,因为底层(默认)计算引擎是M-S-R范式基于磁盘的计算框架MapReduce,尤其是CPU,要求很低很低,但是内存配置高点的话, 还是对性能提升有好处的,一方面是计算,缓冲区大小变大,对计算帮助很大; 另外一反面就是查询,因为Kylin中间结果的存储是依托于HBase的,HBase本身就很吃内存。
MapReduce方面,可以通过在Kylin的配置文件中覆盖掉原有MapReduce的参数配置。在conf目录下,kylin_job_conf.xml 和 kylin_job_conf_inmem.xml 中参数,以键值对的性质,按照如下格式替换: kylin.engine.mr.config-override.<key> = <value>
-
从 Yarn上 获得更多内存,可以这样设置:
kylin.engine.mr.config-override.mapreduce.map.java.opts=-Xmx7g 和 kylin.engine.mr.config-override.mapreduce.map.memory.mb=10240
-
指定MR任务的资源队列,可以设置(在此之前,需要现在yarn上配置资源队列):
kylin.engine.mr.config-override.mapreduce.job.queuename={queueName}
-
配置MR任务执行时的一些内存参数:
mapreduce.reduce.shuffle.merge.percent(default0.66)溢写到磁盘
mapreduce.task.io.sort.mb(default:100)根据不同的硬件尤其是内存的大小来调整,调大的话,会减少磁盘spill的次数此时如果内存足够的话,一般都会显著提升性能