流式框架,同時支持低延遲、高吞吐、Exactly-once的只有Apache Flink。
實時數據處理越來越重要,流式數據處理有著更高的處理效率和成本控制能力。Flink在德語中意味著快速和靈敏,用來體現流式數據處理器速度快和靈活性強等特點。Apache是流式框架中同時支持低延遲、高吞吐、Exactly-once的,同時提供了基于流式計算引擎處理批量數據的計算能力,真正意義上實現了批流統一,同時隨著阿里Blind的開源,極大地增強了Flink對批量計算領域的支持,
傳統的關系型數據存儲架構,逐步演化為分布式處理和存儲的架構。
主要基于集中式的關系型數據庫實現存儲,大多數將架構分為計算層和存儲層。微服務架構將系統數據源拆分,解決了業務系統擴展的問題,但是業務數據國語分散在不同的系統中,很難將數據進行集中化管理,對于企業內部進行數據分析或者數據挖掘之類的應用則需要通過從不同的數據庫進行數據抽取,將數據從數據庫中周期性同步到數據倉庫中,然后再數據倉庫中進行數據的抽取、轉換、加載(ETL),從而構建成不同的數據集和應用,提供給業務系統使用。
圖-大數據實時處理架構
Lamada架構支持處理不同類型的數據,包含支持批量計算的Batch Layer和實時計算的Speed Layer,通過在一套平臺中將批計算和流計算整合在一起,但是這種架構因為框架太多仍然存在平臺復雜度和運維成本較高的問題。
圖-有狀態流計算架構
企業基于實時的流式數據,維護所有計算過程的狀態,所謂狀態就是計算過程中產生的中間結果,每次計算新的數據進入到流式系統中都是基于中間狀態結果的基礎上進行計算,最終產生正確的中間結果?;谟袪顟B計算方式的最大優勢是不需要將原始數據從外部系統中拿出來,避免進行全量計算,對比批量計算,實時計算可以在很短的時間內統計出結果。
可以看出有狀態流計算會逐步成為企業作為構建數據平臺的架構模式。Flink通過實現Google DataFlow流式計算模型實現了高吞吐、低延遲、高性能且兼具實時流式計算框架,同時支持高度容錯的狀態管理。
Apache Flink同時支持以下特性:
同時支持高吞吐、低延遲、高性能,且目前唯一支持,Storm不支持高吞吐的要求
支持事件時間(Event time)的概念,使用事件產生的時間,使得即使亂序,流系統也能計算出正確的結果,保持事件原本產生時的有序性,盡可能避免網絡傳輸或者硬件系統的影響
支持有狀態流式計算,將算子中間結果保存在內存或者文件系統中,極大提升系統性能,降低資源消耗
支持高度靈活的窗口(Window)機制,通過窗口的方式對流數據進行一定范圍的聚合計算
基于輕量級分布式快照(Snapshot)實現的容錯,基于分布式快照技術的Checkpoints,將執行過程中的狀態信息進行持久化存儲,支持任務異常時候的自動恢復,確保數據在處理過程中的一致性
基于JVM實現獨立的內存管理,序列化/反序列化方式減少數據存儲大小,降低GC帶來的性能影響
支持保存點(Save Points),將任務執行的快照保存在存儲介質上,便于更好的管理和運維流式應用
實時智能推薦,通過Flink流計算構建更加實時的智能推薦系統,對用戶行為指標進行實時計算,對模型進行實時更新,對用戶指標進行實時預測,并將預測的信息推送到Web/App端。
復雜事件處理,借助Flink CEP(復雜事件處理)
實時欺詐檢測
實時數倉和ETL
流數據分析
實時報表分析,天貓雙十一大屏
圖-Flink分層架構
有界數據集,具有時間邊界,批計算處理;無界數據集,沒有邊界,持續不斷產生新的數據,流式數據處理。二者是相對概念,主要根據時間的范圍而定,可以認為一段時間內的無界數據集其實是有界數據集,同時有界數據也可以通過一些方法轉換為無界數據,有界數據和無界數據其實是可以相互轉換的,對于不同的數據類型可以進行統一的處理,Apache Spark和Flink同時支持流式計算和批量計算。
核心數據處理接口,支持批計算的接口DataSet API,支持流計算的DataStream API
圖-Flink接口分層與抽象
設定Flink執行環境、創建和加載數據集、對數據集指定轉換操作邏輯、指定計算結果輸出位置、調用execute方法觸發程序執行。
圖-示例Flink程序WordCount
數據類型的描述信息都是由TypeInformation定義,比較常用的有BasicTypeInfo、TupleTypeInfo、CaseClassTypeInfo、PojoTypeInfo
BasicTypeInfo:支持任意Java原生數據類型,數組BasicTypeInfo
Java Tuples類型:固定長度固定類型,不支持空值存儲
POJO類型:復雜數據結構的定義
Flink Value類型:序列化與反序列化
特殊數據類型:Types Hmt
通常情況下Flink都能正常進行數據類型判斷,并選擇合適的serializers以及comparators,但是在某些情況下無法獲取,例如JVM泛型擦除。
反射機制盡可能重構類型信息,類型提示(Ctype Himts),TypeHint指定輸出參數類型
自定義TypeInformation
基于Google提出的DataFlow模型,實現了支持原生數據流處理的計算引擎。API主要分為三個部分:
DataSourc模塊,數據接入功能,主要是將各種外部數據接入到Flink系統,并將接入的數據轉換成對應的DataStream數據集
Transformation模塊,定義了對DataStream數據集的各種轉換操作,例如map、reduce、windows等操作
DataSink模塊,將結果數據寫出到外部存儲介質中,如文件或者Kafka中間件
內置數據源,包括文件、Socket網絡端口以及集合類型數據;第三方數據源,定義了Flink和外部系統數據交互的邏輯,包括數據的讀寫接口,Flink定義了豐富的第三方數據源連接器(Connector),例如Kafka Connector、ESConnector以及自定義第三方數據源Connector。
內置文件數據源
內置Socket數據源
內置集合數據源,集合類Collection,將本地集合中的數據分發到遠端并行執行的節點中
外部數據源連接器,如Kafka
外部自定義數據源連接器,實現SourceFunction等
即通過一個或多個DataStream生成新的DataStream的過程稱為Transformation,在轉換過程中,每種操作類型被定義為不同的Operator,Flink能夠將多個Transformation組成一個DataFlow的拓撲。DataStream的轉換操作可以分為Single-DataStream、Multi-DataStream、物理分區三類類型。
Single-DataStream
Map(DataStream->DataStream)、FlatMap(DataStream->DataStream)、Filter(DataStream->DataStream)、KeyBy(DataStream->KeyedStream)、Reduce(KeyedStream->DataStream)、Aggregations(KeyedStream->DataStream)
Multi-DataStream
Union(DataStream->DataStream)、Connect/CoMap/CoFlatMap(DataStream->DataStream)、Split(DataStream->SplitStream)、select(SplitStream->DataStream)、Iterate(DataStream->IterativeStream->DataStream)
物理分區操作
根據指定的分區策略將數據重新分配到不同節點的task案例上執行,隨機分區、平衡分區、按比例分區等
基本數據輸出
文件輸出、客戶端輸出、Socket網絡端口、
第三方數據輸出
如Kafka、Cassandra、Kinesis、ES、HDFS、NIFI等。DataSink類操作算子專門處理數據的輸出,所有的數據輸出都可以基于實現SinkFunction完成定義,如FlinkKafkaProducer。
三種時間概念:
事件生成時間(Event time)、時間接入時間(Ingestion Time)和事件處理時間(Processing Time)
到此,關于“Flink的原理和用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
美國最新CPI數據顯示,2021年11月CPI同比大漲6.8%,創1982年6月(39年)以來的最高水平??鄢称泛湍茉吹暮诵腃PI同比上漲4.9%,漲幅比10月的4.6%還要大,這也是1991年以來的最高漲幅。上月11日,美國CPI剛剛創下31年最高水平。機構認為:CPI同比讀數再度走高,創近40年來新高,但并未超海外市場預期。11月CPI同比繼續攀升至6.8%,是1982年6月以來的新高。但是...
海通證券交易手續費是多少?據了解,傭金收取比例為:不超過交易金額0.3%,起點5元,買賣雙向收費。如果你已經做過交易,可以在交易后的下一個交易日通過交易軟件中的交單進行查詢,選擇手續費超過5元的記錄計算方法:傭金率=手續費÷交易金額。未做過交易的,可致電開戶營業部或客戶經理查詢。A股交易費用有:交易傭金:最高不超過交易金額3‰,5從元開始,買賣雙方收取;過戶費:成交金額...
什么是股票四線開花?四線開花是發現牛股的利器,具有很強的實際作用,了解的話是找到中長期股票是很好的方法之一。在移動平均線中,有一種模式叫做四線開花。既然是四線,那肯定是四個均線,可以是四線在日水平開花,也可以是四線在周水平開花。長期通常指60日移動平均線、120日移動平均線、180日移動平均線和250日移動平均線四種長期移動平均線。所以四線開花代表著一個大市場的發展。實際上開花的實現意味著四個均線...