THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!

Apache Kylin : Analytical Data Warehouse for Big Data

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

1. Background

System cube 是 kylin 为了更好地进行自我监控所创建的一组 cube,从 kylin-2.3.0 版本开始支持

...

Hive Table Name

Description

System Cube Name

hive_metrics_query_execution_qa

Collect query level and spark execution level related metrics

KYLIN_HIVE_METRICS_QUERY_EXECUTION_QA

hive_metrics_query_spark_job_qa

Collect query spark job level related information

KYLIN_HIVE_METRICS_QUERY_SPARK_JOB_QA

hive_metrics_query_spark_stage_qa

Collect query spark stage level information

KYLIN_HIVE_METRICS_QUERY_SPARK_STAGE_QA

hive_metrics_job_qa

Collect job related metrics

KYLIN_HIVE_METRICS_JOB_QA

hive_metrics_job_exception_qa

Collect job related metrics

KYLIN_HIVE_METRICS_JOB_EXCEPTION_QA

2. Configuration

默认情况下,system cube 是关闭的,开启 system cube 需要做以下配置:

...

在 MetricsSystem 中的记录会再经过 一定时间 或者到达 一定数量 ,才会被保存到 hdfs。这里的 一定时间 默认为 10(分钟),一定数量 默认为 10 条。你可以通过修改配置文件 $KYLIN_HOME/tomcat/webapps/kylin/WEB-INF/classes/kylinMetrics.xml 中的配置项来修改这两个值,“index=1” 的配置项表示累计多少条数据必然会插入 Hive,“index=2” 的配置项表示累计多长时间必然会插入 Hive,单位为分钟):

3. 创建 System cube

使用 system cube 之前,需要准备上面表格中提到的 Hive 表和 Cube,你可以选择 手动创建 或者 使用 system-cube.sh 脚本自动创建

Anchor
Manual
Manual
3.2 手动创建 System cube

Step1、准备配置文件

在 KYLIN_HOME 目录下创建一个配置文件 SCSinkTools.json。例如:

Code Block
titleSCSinkTools.json
linenumberstrue
collapsetrue
[
    {
       "sink": "hive",
       "storage_type": 4,
       "cube_desc_override_properties": {
         "kylin.cube.max-building-segments": "1"
       }
    }
]

Step2、生成 metadata

在 KYLIN_HOME 文件夹下运行以下命令生成相关的 metadata:

...

通过这个命令,相关的 metadata 将会生成且其位置位于 <output_forder> 下。细节如下,system_cube 就是我们的 <output_forder>:

Step3、创建 Hive 表

运行下列命令生成上面表格中的 5 张 Hive 表:

...

默认情况下,这些表将会创建于 Hive 中名为 kylin 的 database 下,可以通过配置项 kylin.metrics.prefix 对默认值 kylin 进行修改

Step4、上传 metadata

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

Code Block
languagebash
titlecreate system cube
linenumberstrue
collapsetrue
bin/metastore.sh restore <output_forder>

Step5、Reload metadata

最后在 kylin web ui 中 Reload metadata,可以看到一组 system cubes 出现在名为 KYLIN_SYSTEM 的 project 下。

Step6、定时构建system cube

创建 system cube 后,随着 metrics 信息被写入 hive,需要定时构建这些 cube,以便写入 hive 中的 metrics 信息可以在 kylin 中快速查询。

...

Code Block
languagepowershell
titlecron job
linenumberstrue
collapsetrue
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

Anchor
Automatic
Automatic
3.2 自动创建 System cube

你可以使用 ${KYLIN_HOME}/binsystem-cube.sh 的脚本来帮助你自动完成以上操作:

...