Flink集成資源管理器
Apache Flink 支持多種資源管理器,主要包括以下幾種?:
- YARN ResourceManager ?:適用于使用 Hadoop YARN 作為資源管理器的環境。YARN ResourceManager 負責管理集群中的資源,包括 CPU、內存等,并根據 Flink 的需求動態申請和釋放資源?。
- Kubernetes ResourceManager ?:適用于使用 Kubernetes 作為資源管理器的環境。Kubernetes ResourceManager 能夠根據 Flink 作業的需求,動態啟動和停止 TaskManager 容器,從而實現資源的靈活管理和高效利用?。
- Mesos ResourceManager ??:適用于使用 Mesos 作為資源管理器的環境。Mesos ResourceManager 提供跨應用的資源隔離和共享,能夠根據 Flink 作業的需求分配資源?。
- Standalone ResourceManager ? ?:適用于獨立部署的 Flink 集群。Standalone ResourceManager 不依賴于外部資源管理器,能夠獨立管理集群內的資源?。
資源管理器的作用和重要性
資源管理器在 Flink 中扮演著至關重要的角色,主要負責以下功能:
- ?資源分配? ?:根據 Flink 作業的需求,動態申請和分配計算資源,如 CPU、內存等?。
- 任務調度 ??:管理 TaskManager 的啟動和停止,確保作業能夠高效運行?。
- ? ?故障恢復? ?:在任務失敗時,能夠快速重新調度和恢復任務,保證系統的穩定性和可靠性?。
- 高可用性? ?:支持高可用設置,確保在主 JobManager 失敗時,備用 JobManager 能夠接管,保證服務的連續性?。
Flink集成YARN
有兩種方式,環境變量法和jar法:
- 環境變量
在 Flink 的配置文件中設置 Hadoop 的環境變量,讓 Flink 能夠訪問 Hadoop 的配置和文件系統。例如,可以通過設置 HADOOP_CLASSPATH 環境變量來實現。
# 新建文件vim /etc/profile.d/bigdata_enb.sh # Hadoop環境變量
export HADOOP_HOME=/opt/module/hadoop/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin# Flink集成Hadoop環境, 其中 ` 是執行 hadoop classpath命令,非文本
export HADOOP_CLASSPATH=`hadoop classpath`
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
- jar 法
將 Hadoop 的依賴打包到 Flink 的 uber jar 包中,這樣 Flink 就能夠直接訪問 Hadoop 的 API 和文件系統。例如,hadoop3.0+可以下載 flink-shaded-hadoop-3-uber.jar、hadoop2.0+下載flink-shaded-hadoop-2-uber.jar 包并將其放在 Flink 的 lib 目錄中。