當前位置:編程學習大全網 - 源碼下載 - Flink JobManager高可用性(HA)

Flink JobManager高可用性(HA)

JobManager 協調每個 Flink 部署。它負責調度和資源管理。

默認情況下,每個 Flink 集群只有壹個 JobManager 實例。 這會產生單點故障(SPOF):如果 JobManager 崩潰,則無法提交新作業並且導致運行中的作業運行失敗。

使用 JobManager 高可用性模式,可以避免這個問題,從而消除 SPOF。您可以為 Standalone YARN 集群 配置高可用性。

針對 Standalone 集群的 JobManager 高可用性的壹般概念是,任何時候都有壹個 主 JobManager 多個備 JobManagers ,以便在主節點失敗時有備 JobManagers 來接管集群。這保證了 沒有單點故障 ,壹旦備 JobManager 接管集群,作業就可以正常運行。主備 JobManager 實例之間沒有明顯的區別。每個 JobManager 都可以充當主備節點。

例如,請考慮以下三個 JobManager 實例的設置:

要啟用 JobManager 高可用性,您必須將 高可用性模式設置 為 zookeeper,配置 zookeeper quorum 將所有 JobManager 主機及其 web UI 端口寫入 配置文件

Flink利用 ZooKeeper 在所有正在運行的 JobManager 實例之間進行分布式協調。 ZooKeeper 是獨立於 Flink 的服務,通過 Leader 選舉和輕量級壹致狀態存儲提供高可靠的分布式協調。 更多關於 ZooKeeper 的信息, 請查看 ZooKeeper 的入門指南 。 Flink 包含用於 Bootstrap ZooKeeper 安裝的腳本。

要啟動HA集群,請在以下位置配置Master文件 conf/masters:

默認情況下,job manager選壹個隨機端口作為進程隨機通信端口。您可以通過 high-availability.jobmanager.port 鍵修改此設置。此配置接受單個端口(例如50010),範圍(50000-50025)或兩者的組合(50010,50011,50020-50025,50050-50075)。

要啟動HA集群,請將以下配置鍵添加到 conf/flink-conf.yaml:

每個 addressX:port 都是壹個 ZooKeeper 服務器的ip及其端口,Flink 可以在指定的地址和端口訪問zookeeper。

重要: 在運行 YARN 或其他群集管理器中運行時,不要手動設置此值。在這些情況下,將根據應用程序 ID 自動生成 cluster-id。 手動設置 cluster-id 會覆蓋 YARN 中的自動生成的 ID。反過來,使用 -z CLI 選項指定 cluster-id 會覆蓋手動配置。如果在裸機上運行多個 Flink HA 集群,則必須為每個集群手動配置單獨的 cluster-id。

該storageDir 中保存了 JobManager 恢復狀態所需的所有元數據。

配置 master 文件和 ZooKeeper quorum 之後,您可以使用提供的集群啟動腳本。它們將啟動 HA 群集。請註意,啟動 Flink HA 集群前,必須啟動 Zookeeper 集群 ,並確保為要啟動的每個 HA 群集 配置單獨的 ZooKeeper 根路徑

在運行高可用性 YARN 集群時, 我們不會運行多個 JobManager (ApplicationMaster) 實例 ,而只運行壹個,該JobManager實例失敗時,YARN會將其重新啟動。Yarn的具體行為取決於您使用的 YARN 版本。

在YARN 配置文件 yarn-site.xml 中,需要配置 application master 的最大重試次數:

當前 YARN 版本的默認值是2(表示允許單個JobManager失敗兩次)。

除了HA配置(參考上文)之外,您還必須配置最大重試次數 conf/flink-conf.yaml:

這意味著在如果程序啟動失敗,YARN會再重試9次(9 次重試 + 1次啟動)。如果 YARN 操作需要,如果啟動10次作業還失敗,yarn才會將該任務的狀態置為失敗。如果搶占,節點硬件故障或重啟,NodeManager 重新同步等操作需要,YARN繼續嘗試啟動應用。 這些重啟不計入 yarn.application-attempts 個數中,請參閱 Jian Fang 的博客文章 。重要的是要註意 yarn.resourcemanager.am.max-attempts 為yarn中程序重啟上限。因此, Flink 中設置的程序嘗試次數不能超過 YARN 的集群設置。

註意: Hadoop YARN 2.4.0 有壹個主要的 bug (在2.5.0中修復),阻止重新啟動的Application Master / Job Manager 重啟容器。有關詳細信息,請參閱 FLINK-4142 。我們建議,在yarn版本要等於或高於Hadoop 2.5.0 增加高可用配置。

如果 ZooKeeper 使用 Kerberos 以安全模式運行,flink-conf.yaml 根據需要覆蓋以下配置:

有關 Kerberos 安全性的 Flink 配置的更多信息,請參閱 此處 。您還可以在 此處 找到關於 Flink 內部如何設置基於 kerberos 的安全性的詳細信息。

如果您沒有正在運行的ZooKeeper,則可以使用Flink程序附帶的腳本。

這是壹個 ZooKeeper 配置模板 conf/zoo.cfg。您可以為主機配置為使用 server.X 條目運行 ZooKeeper,其中 X 是每個服務器的唯壹IP:

該腳本 bin/start-zookeeper-quorum.sh 將在每個配置的主機上啟動 ZooKeeper 服務器。 Flink wrapper 會啟動 ZooKeeper 服務,該 wraper 從 conf/zoo.cfg 中讀取配置,並設置壹些必需的配置項。在生產設置中,建議您使用自己安裝的 ZooKeeper。

  • 上一篇:濰坊到威海源代碼
  • 下一篇:互聯網教育和傳統教育之間,兩者有哪些沖突?
  • copyright 2024編程學習大全網