在 Cloudera Data Flow 上运行你的第一个 Flink 例子

文档编写目的

Cloudera Data Flow(CDF) 作为 Cloudera 一个独立的产品单元,围绕着实时数据采集,实时数据处理和实时数据分析有多个不同的功能模块,如下图所示:

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第1张图片
image

图中 4 个功能模块从左到右分别解释如下:

  1. Cloudera Edge Management(CEM),主要是指在边缘设备如传感器上部署 MiNiFi 的 agent 后用于采集数据。

  2. Cloudera Flow Management(CFM),主要是使用 Apache NiFi 通过界面化拖拽的方式实现数据采集,处理和转换。

  3. Cloudera Streaming Processing(CSP),主要包括 Apache Kafka,Kafka Streams,Kafka 的监控 Streams Messaging Manager(SMM),以及跨集群 Kafka topic 的数据复制 Streams Replication Manager(SRM)。

  4. Cloudera Streaming Analytics(CSA),以前这块是使用 Storm 来作为 Native Streaming 来补充 Spark Streaming 的 Micro-batch 的时延问题,目前这块改为 Flink 来实现,未来的 CDF 中将不再包含 Storm。

本文 Fayson 主要是介绍如何在 CDH6.3 中安装 Flink 1.9 以及运行你的第一个 Flink 例子,以下是测试环境信息:

  1. CM 和 CDH 版本为 6.3

  2. Redhat 7.4

  3. JDK 1.8.0_181

  4. 集群未启用 Kerberos

  5. 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 服务。

image

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 地址,下载->分配->激活。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第2张图片
image
在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第3张图片
image

5.进入 CM 主页点击“添加服务”。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第4张图片
image

6.选择添加 Flink 服务,点击继续。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第5张图片
image

7.选择 Flink History Server 以及 Gateway 节点,点击继续。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第6张图片
image

8.点击继续。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第7张图片
image

9.等待 Flink History Server 启动成功,完成后点击继续。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第8张图片
image
在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第9张图片
image

10.安装完成,点击完成回到 CM 主页。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第10张图片
image
在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第11张图片
image

发现 Flink 的状态为灰色,CMS 有重启提示,按照提示重启 CMS 服务,重启过程略。重启完成后显示 Flink 服务正常。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第12张图片
image

第一个 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

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第13张图片
image
在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第14张图片
image

2.查看输出结果。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第15张图片
image

3.在 YARN 和 Flink 的界面上分别都能看到这个任务。

在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第16张图片
image
在 Cloudera Data Flow 上运行你的第一个 Flink 例子_第17张图片
image

至此,Flink 1.9 安装到 CDH 6.3 以及第一个例子介绍完毕。

备注:这是 Cloudera Streaming Analytics 中所包含 Apache Flink 的抢先测试版。Cloudera 不提供对此版本的支持。该 Beta 版本的目的是让用户可以尽可能早的开始使用 Flink 进行应用程序的开发。

你可能感兴趣的:(在 Cloudera Data Flow 上运行你的第一个 Flink 例子)