KYLIN配置

Kylin 配置文件

Kylin 会自动从环境中读取 Hadoop 配置(core-site.xml),Hive 配置(hive-site.xml)和 HBase 配置(hbase-site.xml),另外,Kylin 的配置文件在 $KYLIN_HOME/conf/ 目录下,如下:

  • kylin_hive_conf.xml:该文件包含了 Hive 任务的配置项。
  • kylin_job_conf.xml & kylin_job_conf_inmem.xml:该文件包含了 MapReduce 任务的配置项。当执行 In-mem Cubing 任务时,需要在 kylin_job_conf_inmem.xml 中为 mapper 申请更多的内存
  • kylin-kafka-consumer.xml:该文件包含了 Kafka 任务的配置项。
  • kylin-server-log4j.properties:该文件包含了 Kylin 服务器的日志配置项。
  • kylin-tools-log4j.properties:该文件包含了 Kylin 命令行的日志配置项。
  • setenv.sh :该文件是用于设置环境变量的 shell 脚本,可以通过 KYLIN_JVM_SETTINGS调整 Kylin JVM 栈的大小,且可以设置 KAFKA_HOME 等其他环境变量。
  • kylin.properties:该文件是 Kylin 使用的全局配置文件。

Cube 构建

  • kylin.engine.mr.mapper-input-rows:每个 Mapper 可以处理的行数,默认值为 1000000,如果将这个值调小,会起更多的 Mapper

任务相关

  • kylin.job.max-concurrent-jobs:最大构建并发数,默认值为 10

优化 Cube 构建

  • 在 Dimensions 上使用 Joint 和 Hierarchy 来减少组合 (cuboids 的数量)。
  • 使用 Snappy 压缩 HBase Cube:kylin.storage.hbase.compression-codec:是否压缩,默认值为 none,即不开启压缩
  • 压缩 Hive 表

 

cube构建算法

选择:inmem

kylin.storage.hbase.min-region-count=20
kylin.storage.hbase.max-region-count=200

 

优化

如果Cube中确定了一个“shard by”维度列(在Cube的“Advanced setting”界面进行设置),该维度列是一个基数很大的维度列(例如“USER_ID”),那么Kylin会要求Hive通过该维度列的值来重新分配数据。对于该列拥有相同值的数据行将会被分配在同一个文件中。这比随机分配要好,因为数据不仅被重新分配了,而且在没有消耗额外成本的情况下就对数据进行了重新分类,这对于后续的Cube构建过程是有帮助的。在特定的情况下,这种优化可以减少40%的构建时间。这种情况下的重分配语句就是 “DISTRIBUTE BY USER_ID”

请注意: 
1.设置为“shard by”的维度列应该是一个基数很大的维度列,并且它会出现在很多cuboid中(不会是仅仅出现在很少的cuboid中)。使用它进行重分配可能会在每一个时间间隔上获得等分布;反之则会造成数据倾斜,而这则会减少构建速度。典型的适合情景就是:“USER_ID”,“SELLER_ID”,“PRODUCT”,“CELL_NUMBER”等等,一般基数应该大于1000(应该远远大于reducer的数目)。 
2.使用“shard by”在Cube存储中还有其他的优势,但不在本文的讨论范围中。

 

 

你可能感兴趣的:(kylin)