使用Apache Flink和Apache Ignit進行資料流分析
在本文中,我們將討論如何使用Apache Flink和Apache Ignite構建資料流應用程式。構建資料流應用程式可以以優化和容錯的方式將大量有限和無限量的資料提取到Ignite叢集中。資料攝取率非常高,每秒可以擴充套件到數百萬個事件。
Apache IgniteSink提供了一個流聯結器,用於將Flink資料注入Ignite快取,聯結器將其輸入資料傳送到Ignite快取。
需要注意的關鍵特性是Apache Flink和Apache Ignite提供的效能和擴充套件。Apache Flink可以處理無界和有界資料集,並且可以大規模執行有狀態流應用程式。應用程式計算以叢集形式分佈和同時執行。Apache Flink還針對任務的本地狀態訪問進行了優化,並確定了本地狀態的永續性。Apache Ignite提供流式處理功能,允許在記憶體資料網格中大規模地提取資料。
本文應用ofollow,noindex" target="_blank">github
設定:下載並啟動Flink
從下載頁面下載二進位制檔案,可以選擇任何您喜歡的Hadoop / Scala組合。如果您打算只使用本地檔案系統,任何Hadoop版本都可以正常工作。轉到下載目錄。
解壓縮下載的檔案
$ cd ~ / Downloads #轉到下載目錄
$ tar xzf flink - * .tgz #解壓縮下載的檔案
$ cd flink-1.5.0
啟動本地Flink群集:
$ ./bin/start-cluster.sh# 啟動Flink
檢查Dispatcher的Web前端,http:// localhost:8081 ,確保一切正常執行。Web前端應輸出單個可用的TaskManager例項。還可以通過檢查logs目錄中的日誌檔案來驗證系統是否正在執行:$ tail log / flink - * - standalonesession - * .log
下載Kafka 從下載頁面([url]https://kafka.apache.org/downloads[/url])下載二進位制檔案。
您可以選擇Apache Kafka
0.10.2.2
版本
scala 2.11
。
1. 啟動Zookeeper Server
/bin/zookeeper-server-start.sh ./config/zookeeper.properties
2. 啟動經紀人
./bin/kafka-server-start.sh ./config/server.properties
3.建立主題“mytopic”
$ ./bin/kafka-topics.sh --create --topic mytopic --zookeeper localhost:2181 --partitions 1 --replication-factor 1
4.檢視主題“mytopic”
$ ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic mytopic
5. 在主題中產生一些東西(寫點東西然後輸入)
$ ./bin/kafka-console-producer.sh --topic mytopic --broker -list localhost:9092
6. 使用Console Producer消費主題:
$ ./bin/kafka-console-consumer.sh --topic mytopic --zookeeper localhost:2181
7. 下載Apache Ignite
在編寫本文件時,
master
分支中提供了對Flink叢集中的資料流應用程式的IgniteSink支援 。
$ git clone https://github.com/apache/ignite
8. 構建Apache Ignite
$ mvn clean package install -DskipTests
9. 構建Flink程式 本文應用github
$ mvn clean package
10. 提交Flink程式
$ ./bin/flink run streamers-1.0-SNAPSHOT.jar
11. 在主題中產生一些東西(寫點東西並點選回車)
$ ./bin/kafka-console-producer.sh --topic mytopic --broker -list localhost:9092
只要文字不斷輸入,out檔案就會在每個時間視窗的末尾列印計數,例如:
$ tail -f log/flink-*-taskexecutor-*.outlorem : 1bye : 1ipsum : 4
12. Ignite REST服務要檢查快取鍵值,可以使用Ignite REST服務
$ curl -X GET http://localhost:8080/ignite\?cmd\=getall\&k1\=jam\&cacheName\=testCache
13. 掃描快取要檢查Ignite快取中的所有金鑰,可以使用以下REST服務
$ curl -X GET http://localhost:8080/ignite?cmd=qryscanexe&pageSize=10&cacheName=testCache
總結
我們介紹瞭如何使用Apache Flink和Apache Ignite構建簡單的資料流應用程式,並建立流處理拓撲,允許以分散式,可擴充套件和容錯的方式進行資料流,以便處理由數百萬個事件組成的無界資料集。
[該貼被banq於2018-10-14 19:58修改過]