什麼是Apache Flink? —運維篇

什麼是Apache Flink? —運維篇

Apache Flink是用於無界和有界的數據流上的有狀態計算的框架。由於許多流應用程序的設計目的是在最少的停機時間內連續運行,因此流處理器必須提供出色的故障恢復能力,以及在運行時監控和維護應用程序的工具。

Apache Flink將重點放在流處理的操作方面。在這裏,我們將說明Flink的故障恢復機制,並介紹用來管理和監督正在運行的應用程序的功能。


7 * 24小時穩定運行

機器和處理過程的故障在分佈式系統中無處不在。像Flink這樣的分佈式流處理器必須從故障中恢復,才能7*24運行流應用程序。很顯然,這不僅意味着在發生故障後重新啓動應用程序,而且還意味着確保其內部狀態保持一致,從而使應用程序可以像從未發生過故障一樣繼續進行處理。

Flink提供了一些功能來確保應用程序保持運行並保持一致:

  • 一致性檢查點:Flink的故障恢復機制是通過建立在應用程序狀態一致性檢查點實現的,如果發生故障,將重新啓動應用程序,並從最新的檢查點加載其狀態。結合可重置的數據源,這個功能可以保證一次狀態一致性。
  • 高效的檢查點:如果一個應用程序要維護TB量級的狀態信息,那麼對應用程序的狀態進行檢查點的開銷可能是會非常昂貴。Flink可以執行異步和增量檢查點,爲了減少檢查點對應用程序延遲SLA的影響。
  • 端到端的精確一次:Flink具有針對特定存儲系統的事務接收器,即使在發生故障的情況下,也可以確保僅將數據精確地寫入一次。
  • 與集羣管理器的集成:Flink與Hadoop YARN,Mesos或Kubernetes等集羣管理器緊密集成。當某個流程失敗時,新流程將自動啓動以接管其工作。
  • 高可用性服務的設置:Flink具有高可用性模式,可消除所有單點故障。HA模式是基於經過實踐檢驗的服務Apache ZooKeeper實現的,可實現可靠的分佈式協調服務。

更新,遷移,暫停和恢復您的應用程序

驅動關鍵業務服務的流應用是經常需要維護的。需要修復錯誤,並需要改進或實現新功能。但是,要更新有狀態的流應用程序並非易事。通常,一個人無法輕易地停止應用程序並重新啓動一個固定或改進的版本,因爲一個人無法承受失去應用程序狀態的負擔。

Flink的保存點是一項獨特而強大的功能,可以解決更新有狀態的應用程序的問題以及許多其他相關的挑戰。保存點是應用程序狀態的一致性快照,因此與檢查點非常的相似。但是,與檢查點相比,保存點需要手動觸發,並且在停止應用程序時不會自動將其刪除。保存點可用於啓動狀態兼容的應用程序並初始化其狀態。保存點有以下的功能:

  • 應用程序升級:保存點可用於升級應用程序。可以從先前版本的應用程序中獲取的保存點重新啓動應用程序的固定版本或改進版本。也可以從較早的時間點啓動應用程序(如果存在這樣的保存點),以修復有缺陷的版本產生的錯誤結果。
  • 集羣遷移:使用保存點,可以將應用程序遷移(或克隆)到不同的羣集。
  • Flink版本更新:可以使用保存點將應用程序遷移在新的Flink版本上運行。
  • 應用擴展:保存點可用於增加或減少應用程序的並行性。
  • 便於A/B測試及假設分析場景對比結果:可以通過從同一保存點啓動所有版本來比較應用程序的兩個(或多個)不同版本的性能或質量。
  • 暫停和恢復服務:可以通過保存點並停止它來暫停應用程序。在以後的任何時間點,都可以從保存點恢復應用程序。
  • 存檔服務:可以將保存點存檔,以便能夠將應用程序的狀態重置爲較早的時間點。

監控和控制應用服務

和其他的服務一樣,需要對持續運行的流應用程序進行監控並將其集成到運營基礎架構中,例如一個組件的監控服務及日誌服務等。監控有助於預測問題並提前做出反應。通過日誌服務,可以分析調查故障發生的根本原因,最後,易於控制運行中的應用程序訪問的接口是一個重要的功能。

Flink與許多常用的日誌記錄和監視服務很好地集成在一起,並提供REST API來控制應用程序和查詢信息。

  • Web UI:Flink具有Web UI,可以檢查,監視和調試正在運行的應用程序。它還可以用於提交執行以執行或取消執行。
  • 日誌記錄:Flink實現流行的slf4j日誌記錄接口,並與日誌記錄框架log4j或logback集成。
  • 指標服務:Flink具有複雜的指標系統,用來收集並報告系統和用戶定義的指標。指標可以導出到多個報告器,包括JMX,Ganglia,Graphite,Prometheus,StatsD,Datadog和Slf4j。
  • REST API:Flink提供了REST API來提交新應用程序,獲取正在運行的應用程序的保存點或取消應用程序。REST API還提供了正在運行或已完成的應用程序的元數據和收集的指標。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章