文档编写目的
Cloudera Data Flow(CDF) 作为 Cloudera 一个独立的产品单元,围绕着实时数据采集,实时数据处理和实时数据分析有多个不同的功能模块,如下图所示:
图中 4 个功能模块从左到右分别解释如下:
- Cloudera Edge Management(CEM),主要是指在边缘设备如传感器上部署 MiNiFi 的 agent 后用于采集数据。
- Cloudera Flow Management(CFM),主要是使用 Apache NiFi 通过界面化拖拽的方式实现数据采集,处理和转换。
- Cloudera Streaming Processing(CSP),主要包括 Apache Kafka,Kafka Streams,Kafka 的监控 Streams Messaging Manager(SMM),以及跨集群 Kafka topic 的数据复制 Streams Replication Manager(SRM)。
- Cloudera Streaming Analytics(CSA),以前这块是使用 Storm 来作为 Native Streaming 来补充 Spark Streaming 的 Micro-batch 的时延问题,目前这块改为 Flink 来实现,未来的 CDF 中将不再包含 Storm。
本文 Fayson 主要是介绍如何在 CDH6.3 中安装 Flink 1.9 以及运行你的第一个 Flink 例子,以下是测试环境信息:
- CM 和 CDH 版本为 6.3
- Redhat 7.4
- JDK 1.8.0_181
- 集群未启用 Kerberos
- Root 用户安装
安装 Flink 1.9
1.准备 Flink 1.9 的 csd 文件,并放置到 Cloudera Manager Server 的 /opt/cloudera/csd 目录。然后重启 Cloudera Manager Server 服务。
[root@ip-172-31-13-38 ~]# cd /opt/cloudera/csd
[root@ip-172-31-13-38 csd]# ll
total 44
-rw-r--r-- 1 root root 12407 Nov 8 01:26 FLINK-1.9.0-csa1.0.0.0-cdh6.3.0.jar
-rw-r--r-- 1 root root 24630 Sep 4 20:02 STREAMS_MESSAGING_MANAGER-2.1.0.jar
[root@ip-172-31-13-38 csd]# systemctl restart cloudera-scm-server
2.CM 重启完成以后,添加服务页面可以看到有 Flink 服务。
3.下载 Flink 1.9 的 Parcel,并放置 /var/www/html 目录。
[root@ip-172-31-13-38 ~]# cd /var/www/html/flink1.9/
[root@ip-172-31-13-38 flink1.9]# ll
total 127908
-rw-r--r-- 1 root root 130962403 Nov 8 01:36 FLINK-1.9.0-csa1.0.0.0-cdh6.3.0-el7.parcel
-rw-r--r-- 1 root root 41 Nov 8 01:28 FLINK-1.9.0-csa1.0.0.0-cdh6.3.0-el7.parcel.sha1
-rw-r--r-- 1 root root 4421 Nov 8 01:28 manifest.json
[root@ip-172-31-13-38 flink1.9]#
4.通过 Hosts > Parcels 进入 Cloudera Manager 的 Parcel 页面,输入 SMM Parcel 的 http 地址,下载->分配->激活。
5.进入 CM 主页点击“添加服务”。
6.选择添加 Flink 服务,点击继续。
7.选择 Flink History Server 以及 Gateway 节点,点击继续。
8.点击继续。
9.等待 Flink History Server 启动成功,完成后点击继续。
10.安装完成,点击完成回到 CM 主页。
发现 Flink 的状态为灰色,CMS 有重启提示,按照提示重启 CMS 服务,重启过程略。重启完成后显示 Flink 服务正常。
第一个 Flink 例子
1.执行 Flink 自带的 example 的 wordcount 例子。
[root@ip-172-31-13-38 ~]# flink run -m yarn-cluster -yn 4 -yjm 1024 -ytm 1024 /opt/cloudera/parcels/FLINK/lib/flink/examples/streaming/WordCount.jar --input hdfs://ip-172-31-13-38.ap-southeast-1.compute.internal:8020/fayson/ods_user_600.txt --output hdfs://ip-172-31-13-38.ap-southeast-1.compute.internal:8020/fayson/wordcount_output
2.查看输出结果。
3.在 YARN 和 Flink 的界面上分别都能看到这个任务。
至此,Flink 1.9 安装到 CDH 6.3 以及第一个例子介绍完毕。
备注:这是 Cloudera Streaming Analytics 中所包含 Apache Flink 的抢先测试版。Cloudera 不提供对此版本的支持。该 Beta 版本的目的是让用户可以尽可能早的开始使用 Flink 进行应用程序的开发。
更多技术文章可了解以下 Apache Flink 系列入门教程。