Cebe Pananer优化

一、两个步骤

二、System Cube

2.1 开启System Cube

修改$KYLIN_HOME/conf/kylin.properties文件,将下述文字粘贴至空白处

#### Dashboard ###
kylin.server.query-metrics2-enabled=true
kylin.metrics.reporter-query-enabled=true
kylin.metrics.reporter-job-enabled=true
kylin.metrics.monitor-enabled=true
kylin.web.dashboard-enabled=true
#kylin.cube.cubeplanner.enabled=true
2.1 生成Metadata
2.1.1 在 KYLIN_HOME 目录下创建一个配置文件 SCSinkTools.json。内容如下:
$ cd $KYLIN_HOME
$ vi ./SCSinkTools.json
[
  [
    "org.apache.kylin.tool.metrics.systemcube.util.HiveSinkTool",
    { 
      "storage_type": 2, 
      "cube_desc_override_properties": [ 
        "java.util.HashMap",
        { "kylin.cube.algorithm": "INMEM", 
        "kylin.cube.max-building-segments": "1"
         } 
      ] 
    }
  ] 
]
2.1.2 在 KYLIN_HOME 文件夹下运行一下命令生成相关的 metadata,如下:
$ ./bin/kylin.sh org.apache.kylin.tool.metrics.systemcube.SCCreator -inputConfig SCSinkTools.json -output ./system_cube  # [<output_foeder>]

通过这个命令,相关的 metadata 将会生成且其位置位于 <output_forder> 下,此处<output_foeder>取 system_cube:

$ ls system_cube
总用量 4
-create_hive_tables_for_system_cubes.sql  cube  cube_desc  model_desc  project  table
2.1.3 设置数据源

运行下列命令生成 hive 源表:

$ hive -f system_cube/create_hive_tables_for_system_cubes.sql
2.1.4 为System Cubes上传 Metadata

然后我们需要通过下列命令上传 metadata 到 hbase:

$ ./bin/metastore.sh restore system_cube
2.1.5 重载Metadata

最终,我们需要在 Kylin web UI 重载 metadata。
然后,一组系统 Cubes 将会被创建在系统 project 下,称为 “KYLIN_SYSTEM”。
Cebe Pananer优化
Cebe Pananer优化

2.1.6 构建和更新System cube

当系统 Cube 被创建,我们需要定期 build Cube。
步骤一:创建一个 shell 脚本,通过调用 org.apache.kylin.tool.job.CubeBuildingCLI 来构建系统 Cube。例如:

#!/bin/bash

dir=$(dirname ${0})
export KYLIN_HOME=${dir}/../

CUBE=$1
INTERVAL=$2
DELAY=$3
CURRENT_TIME_IN_SECOND=`date +%s`
CURRENT_TIME=$((CURRENT_TIME_IN_SECOND * 1000))
END_TIME=$((CURRENT_TIME-DELAY))
END=$((END_TIME - END_TIME%INTERVAL))

ID="$END"
echo "building for ${CUBE}_${ID}" >> ${KYLIN_HOME}/logs/build_trace.log
sh ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.job.CubeBuildingCLI --cube ${CUBE} --endTime ${END} > ${KYLIN_HOME}/logs/system_cube_${CUBE}_${END}.log 2>&1 &

步骤二:定期运行这个 shell 脚本。例如,像接下来这样添加一个 cron job:

contab -e
0 */2 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_QUERY_QA 3600000 1200000

20 */2 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_QUERY_CUBE_QA 3600000 1200000

40 */4 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_QUERY_RPC_QA 3600000 1200000

30 */4 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_JOB_QA 3600000 1200000

50 */12 * * * sh ${KYLIN_HOME}/bin/system_cube_build.sh KYLIN_HIVE_METRICS_JOB_EXCEPTION_QA 3600000 12000

从kylin 2.6.0 开始提供 system-cube.sh 脚本,用户可以通过执行此脚本来自动创建系统 Cube。
创建系统 Cube:sh bin/system-cube.sh setup
构建系统 Cube:sh bin/system-cube.sh build
为系统 Cube 添加定时任务:sh bin/system-cube.sh cron

上一篇:Kylin学习笔记


下一篇:大三寒假学习 spark学习 函数定义 占位符语法