天天看點

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

文檔編寫目的

Cloudera Data Flow(CDF) 作為 Cloudera 一個獨立的産品單元,圍繞着實時資料采集,實時資料處理和實時資料分析有多個不同的功能子產品,如下圖所示:

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

圖中 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 服務。

在 Cloudera Data Flow 上運作你的第一個 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 位址,下載下傳->配置設定->激活。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子
在 Cloudera Data Flow 上運作你的第一個 Flink 例子

5.進入 CM 首頁點選“添加服務”。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

6.選擇添加 Flink 服務,點選繼續。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

7.選擇 Flink History Server 以及 Gateway 節點,點選繼續。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

8.點選繼續。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

9.等待 Flink History Server 啟動成功,完成後點選繼續。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子
在 Cloudera Data Flow 上運作你的第一個 Flink 例子

10.安裝完成,點選完成回到 CM 首頁。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

發現 Flink 的狀态為灰色,CMS 有重新開機提示,按照提示重新開機 CMS 服務,重新開機過程略。重新開機完成後顯示 Flink 服務正常。

在 Cloudera Data Flow 上運作你的第一個 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           
在 Cloudera Data Flow 上運作你的第一個 Flink 例子
在 Cloudera Data Flow 上運作你的第一個 Flink 例子

2.檢視輸出結果。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子

3.在 YARN 和 Flink 的界面上分别都能看到這個任務。

在 Cloudera Data Flow 上運作你的第一個 Flink 例子
在 Cloudera Data Flow 上運作你的第一個 Flink 例子

至此,Flink 1.9 安裝到 CDH 6.3 以及第一個例子介紹完畢。

備注:這是 Cloudera Streaming Analytics 中所包含 Apache Flink 的搶先測試版。Cloudera 不提供對此版本的支援。該 Beta 版本的目的是讓使用者可以盡可能早的開始使用 Flink 進行應用程式的開發。