天天看點

flink初識

流處理:資料大小未知、簡單操作、及時相應(spark streaming,flink)

批處理:資料大小固定,複雜操作,需要一段時間響應。(hive,mr,spark core sql)

離線計算:資料量大&周期長、複雜操作、資料固定、友善查詢計算結果

實時計算:資料實時到達、資料達到次序獨立、資料規模大&無法預知容量、再次提取代價大

Apache Fink是一個架構和分布式處理引擎,用于對無界和有界資料流進行有狀态計算。Flink設計為在所有常見的叢集環境中運作,以記憶體速度和任何規模執行計算。

(1)批處理:處理曆史資料集

(2)流處理:處理實時資料流

(3)事件驅動應用:監控事件的服務 (事件就是資料)

注:spark是時間驅動 spark和flink第一個差別

(1)支援高吞吐、低延遲、高性能的流處理

(2)支援帶有事件時間的視窗(Window)操作

(3)支援有狀态計算的Exactly-once語義

(4)支援高度靈活的視窗(Window)操作,支援基于time、count、session,以及data-driven的視窗操作

(5)支援具有反壓功能的持續流模型

(6)支援基于輕量級分布式快照(Snapshot)實作的容錯 (checkpoint)

(7)一個運作時同時支援Batch on Streaming處理和Streaming處理

(8)Flink在JVM内部實作了自己的記憶體管理,避免了出現oom(記憶體溢出)

(9)支援疊代計算

(10)支援程式自動優化:避免特定情況下Shuffle、排序等昂貴操作,中間結果有必要進行緩存

Flink 在流處理和批處理上的 source 大概有 4 類:

(1)基于本地集合的 source、

(2)基于檔案的 source、

(3)基于網絡套接字的 source、

(4)自定義的 source。自定義的 source 常見的有 Apache kafka、Amazon Kinesis Streams、RabbitMQ、Twitter Streaming API、Apache NiFi 等,當然你也可以定義自己的 source。

有 Map / FlatMap / Filter /KeyBy / Reduce / Fold / Aggregations / Window / WindowAll / Union / Window join / Split / Select / Project 等,

操作很多,可以将資料轉換計算成你想要的資料。

Flink 将轉換計算後的資料發送的地點 。

Flink 常見的 Sink 大概有如下幾類:

寫入檔案、

列印出來、

寫入 socket 、

自定義的 sink 。自定義的 sink 常見的有 Apache kafka、RabbitMQ、MySQL、ElasticSearch、Apache Cassandra、Hadoop FileSystem 等,同理你也可以定義自己的 sink。

Client:Flink 作業在哪台機器上面送出,那麼目前機器稱之為Client。使用者開發的Program 代碼,它會建構出DataFlow graph,然後通過Client送出給JobManager。

JobManager:是主(master)節點,相當于Spark的Driver,相當于YARN裡面的ResourceManager,生産環境中需要做高可用。JobManager會将任務進行拆分,發送到TaskManager上面執行。

TaskManager:是從節點(slave),相當于Spark的Executor,執行task

一個叢集隻有一個JobManager,多個TaskManager

(1)、獨立叢集:前提開啟 nc -lk 8888

送出任務

1、在web頁面送出任務

(2)、yarn模式

1、yarn-session 在yarn裡面啟動一個flink叢集 jobManager

先啟動hadoop

yarn-session.sh -jm 1024m -tm 1096m

2、直接送出任務到yarn 每一個任務都會有一個jobManager

flink run -m yarn-cluster -yjm 1024m -ytm 1096m -c com.shujia.flink.soure.Demo4ReadKafka flink-1.0.jar

yarn-session先在yarn中啟動一個jobMansager ,所有的任務共享一個jobmanager (送出任務更快,任務之間共享jobmanager , 互相有影響)

直接送出任務模型,為每一個任務啟動一個joibmanager (每一個任務獨立jobmanager , 任務運作穩定)

繼續閱讀