用 Flink 构建 Cube

Kylin v3.1 引入了 Flink cube engine,在 build cube 步骤中使用 Apache Flink 代替 MapReduce;您可以查看 KYLIN-3758 了解具体信息。当前的文档使用样例 cube 对如何尝试 new engine 进行了演示。

准备阶段

您需要一个安装了 Kylin v3.1.0 及以上版本的 Hadoop 环境。本文档中使用的Hadoop环境为Cloudera CDH 5.7,其中 Hadoop 组件和 Hive/HBase 已经启动了。

安装 Kylin v3.1.0 及以上版本

从 Kylin 的下载页面下载适用于 CDH5.7+ 的 Kylin v3.1.0,然后在 /usr/local/ 文件夹中解压 tar 包:

wget http://www-us.apache.org/dist/kylin/apache-kylin-3.1.0/apache-kylin-3.1.0-bin-cdh57.tar.gz -P /tmp

tar -zxvf /tmp/apache-kylin-3.1.0-bin-cdh57.tar.gz -C /usr/local/

export KYLIN_HOME=/usr/local/apache-kylin-3.1.0-bin-cdh57

准备 “kylin.env.hadoop-conf-dir”

为使 Flink 运行在 Yarn 上,需指定 HADOOP_CONF_DIR 环境变量,其是一个包含 Hadoop(客户端) 配置文件的目录,通常是 /etc/hadoop/conf。

通常 Kylin 会在启动时从 Java classpath 上检测 Hadoop 配置目录,并使用它来启动 Flink。 如果您的环境中未能正确发现此目录,那么可以显式地指定此目录:在 kylin.properties 中设置属性 “kylin.env.hadoop-conf-dir” 好让 Kylin 知道这个目录:

kylin.env.hadoop-conf-dir=/etc/hadoop/conf

检查 FLink 配置

配置FLINK_HOME指向你的flink安装目录:

$xslt export FLINK_HOME=/path/to/flink

或者使用kylin提供的脚本下载:

$xslt $KYLIN_HOME/bin/download-flink.sh

所有使用 “kylin.engine.flink-conf.” 作为前缀的 Flink 配置属性都能在 $KYLIN_HOME/conf/kylin.properties 中进行管理。这些属性当运行提交Flink任务时会被提取并应用。

运行 Flink cubing 前,建议查看一下这些配置并根据您集群的情况进行自定义。下面是建议配置:

### Flink conf (default is in $FLINK_HOME/conf/flink-conf.yaml)

kylin.engine.flink-conf.jobmanager.heap.size=2G

kylin.engine.flink-conf.taskmanager.heap.size=4G

kylin.engine.flink-conf.taskmanager.numberOfTaskSlots=1

kylin.engine.flink-conf.taskmanager.memory.preallocate=false

kylin.engine.flink-conf.job.parallelism=1

kylin.engine.flink-conf.program.enableObjectReuse=false

kylin.engine.flink-conf.yarn.queue=

kylin.engine.flink-conf.yarn.nodelabel=

所有 “kylin.engine.flink-conf.*” 参数都可以在 Cube 或 Project 级别进行重写,这为用户提供了灵活性。

创建和修改样例 cube

运行 sample.sh 创建样例 cube,然后启动 Kylin 服务器:

$KYLIN_HOME/bin/sample.sh

$KYLIN_HOME/bin/kylin.sh start

Kylin 启动后,访问 Kylin 网站,在 “Advanced Setting” 页,编辑名为 “kylin_sales” 的 cube,将 “Cube Engine” 由 “MapReduce” 换成 “Flink”:

点击”Next” and “Save” 保存cube.

用 FLink 构建 Cube

默认情况下,只有第7步的cube by layer使用Flink进行构建。

点击 “Build”,选择当前日期为 end date。Kylin 会在 “Monitor” 页生成一个构建 job,第 7 步是 Flink cubing。Job engine 开始按照顺序执行每一步。

当 Kylin 执行这一步时,您可以监视 Yarn 资源管理器里的状态.

所有步骤成功执行后,Cube 的状态变为 “Ready” 且可以进行查询。

可选功能

现在构建步骤中的’extract fact table distinct value’ 和 ‘Convert Cuboid Data to HFile’ 两个步骤也可以使用Flink进行构建。相关的配置如下:

kylin.engine.flink-fact-distinct=true

kylin.engine.flink-cube-hfile=true

疑难解答

当出现 error,您可以首先查看 “logs/kylin.log”. 其中包含 Kylin 执行的所有 Flink 命令,例如:

2020-06-16 15:48:05,752 INFO [Scheduler 2113190395 Job 478f9f70-8444-6831-6817-22869f0ead2a-308] flink.FlinkExecutable:225 : cmd: export HADOOP_CONF_DIR=/etc/hadoop/conf && export HADOOP_CLASSPATH=/etc/hadoop && /root/apache-kylin-3.1.0-SNAPSHOT-bin-master/flink/bin/flink run -m yarn-cluster -ytm 4G -yjm 2G -yD taskmanager.memory.preallocate false -ys 1 -c org.apache.kylin.common.util.FlinkEntry -p 1 /root/apache-kylin-3.1.0-SNAPSHOT-bin/lib/kylin-job-3.1.0-SNAPSHOT.jar -className org.apache.kylin.engine.flink.FlinkCubingByLayer -hiveTable default.kylin_intermediate_kylin_sales_cube_flink_75ffb8ff_b27c_c86b_70f2_832a4f18f5cf -output hdfs://cdh-master:8020/kylin/yaqian/kylin_zyq/kylin-478f9f70-8444-6831-6817-22869f0ead2a/kylin_sales_cube_flink/cuboid/ -input hdfs://cdh-master:8020/kylin/yaqian/kylin_zyq/kylin-478f9f70-8444-6831-6817-22869f0ead2a/kylin_intermediate_kylin_sales_cube_flink_75ffb8ff_b27c_c86b_70f2_832a4f18f5cf -enableObjectReuse false -segmentId 75ffb8ff-b27c-c86b-70f2-832a4f18f5cf -metaUrl kylin_zyq@hdfs,path=hdfs://cdh-master:8020/kylin/yaqian/kylin_zyq/kylin-478f9f70-8444-6831-6817-22869f0ead2a/kylin_sales_cube_flink/metadata -cubename kylin_sales_cube_flink

您可以复制 cmd 以便在 shell 中手动执行,然后快速进行参数调整;执行期间,您可以访问 Yarn 资源管理器查看更多信息。如果 job 已经完成了,您可以检查flink的日志文件。

kylin如何支持flink_大数据集群运维(28) Kylin 配置使用 flink 构建 Cube相关推荐

  1. 【史上最全】Ambari 大数据集群运维与管理操作指南

    作 用 Hadoop 是用在商业主机网络集群上的大规模.分布式的数据存储和处理基础架构.监控和管理如此复杂的分布式系统是不简单的.为了管理这种复杂性, Apache Ambari 从集群节点和服务收集 ...

  2. python大数据运维库_大数据集群运维(10)Pycharm下安装模块

    方法一:使用Pycharm的终端安装 一.网络爬虫 1.安装requests包 作用:简洁且简单的处理HTTP请求的第三方库 pip install requests 2.安装scrapy包 作用:快 ...

  3. EMR重磅发布智能运维诊断系统(EMR Doctor)——开源大数据平台运维利器

    大数据运维的挑战-如何保证集群稳定与运行效率 企业级大数据集群通常拥有海量的数据存储.日常运算成干上万的计算任务,需要满足各类上层业务的计算需求.对于这类集群的运维往往充满着挑战:海量的数据.庞杂的组 ...

  4. EMR 重磅发布智能运维诊断系统(EMR Doctor)——开源大数据平台运维利器

    大数据运维的挑战-如何保证集群稳定与运行效率 企业级大数据集群通常拥有海量的数据存储.日常运算成干上万的计算任务,需要满足各类上层业务的计算需求.对于这类集群的运维往往充满着挑战:海量的数据.庞杂的组 ...

  5. python自动化部署hadoop集群_大数据集群的自动化运维实现思路

    原标题:大数据集群的自动化运维实现思路 | 作者简介 王晓伟 知数堂<大数据实战就业>课程讲师 六年大数据相关工作经验 清华大学软件工程硕士 曾就职于网易.搜狗等互联网企业 从事大数据及数 ...

  6. 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解

    一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解 "如果你是一个经验丰富的运维开发人员,那么你一定知道ganglia.nagios.zabbix.elastics ...

  7. 阿里云TSDB在大数据集群监控中的方案与实战

    目前大部分的互联网企业基本上都有搭建自己的大数据集群,为了能更好让我们的大数据集群更加高效安全的工作,一个优秀的监控方案是必不可少的:所以今天给大家带来的这篇文章就是讲阿里云TSDB在上海某大型互联网 ...

  8. 大数据集群跨多版本升级、业务0中断,只因背后有TA

    摘要:2021年4月21日,中国太平洋保险集团联合华为云完成了全球首例大数据集群跨多版本的大数据集群滚动升级. 本文分享自华为云社区<华为云FusionInsight助力太保跨多版本升级业务0中 ...

  9. 同程旅行大数据集群在 Kubernetes 上的服务化实践

    本文将向大家介绍同程旅行大数据集群在 Kubernetes 上服务化建设的一些实践和经验. 同程旅行大数据集群从 2017 年开始容器化改造,经历了自研调度 Docker 容器 ,到现在的云舱平台,采 ...

最新文章

  1. [云炬小程序实战笔记] 第3章 云炬博客小程序全局配置
  2. 设计高效sql一般经验谈
  3. Google和百度都无法替代的10大深网搜索引擎
  4. Linux密码是一个回文,usermod命令和用户密码管理
  5. notebook python 内嵌 数据库_python数据分析:在jupyter notebook上使用pythonSQL做数据分析...
  6. 隐藏的图片在浏览器中的请求
  7. conda环境内安装gcc4.8.5(无root权限)
  8. Spring boot中的Http压缩配置
  9. docker commit新镜像之后删除旧镜像
  10. 2018.8.25CCPC网络赛Find Integer题解(费马大定理+勾股数的求解)
  11. Hibernate Serach 5.9全文检索快速入门
  12. Day.js 一个轻量级的 JavaScript 时间日期处理库
  13. 【微信小程序】wx:for的使用
  14. 为什么刀剑总显示服务器繁忙,刀剑乱舞萌新必看攻略 常见问题篇
  15. 本体技术视点 | 数据的去中心化协作和可信流动(一)
  16. veins笔记——模块
  17. 关于plt.cm.Spectral
  18. CCI指标在市场经济体制改革中,力挽狂澜的CCI指标
  19. 计算机操作课后 陆丽娜第二版,操作系统 第四章课后部分答案
  20. 某网站JS的变态写法/诺禾

热门文章

  1. ACL 2020 | 多编码器是否能够捕获篇章级信息?
  2. 数学建模第六节2020.5.15-17补
  3. acm公选课第三节4.7直播4.9补 递归 深搜啥的
  4. 丑憨批的Transformer笔记
  5. python中关键字参数的特点_Python中的*可变参数与**关键字参数
  6. 小程序获取input 的value_[小发现] 现在可以获取任意小程序的小程序码了!
  7. android表格布局的使用方法,Android布局(RelativeLayout、TableLayout等)使用方法
  8. Spring-aop注解开发(切点表达式的抽取)
  9. 「中间件系列二」redis缓存
  10. 网关和BFF是如何演进出来的?