一、基礎環境準備
- ?安裝JDK 1.8+?
所有節點需安裝JDK并配置環境變量,確保JAVA_HOME
正確指向安裝路徑14。 - ?部署Hadoop集群?
- 安裝Hadoop(推薦3.x版本),配置YARN資源管理器4。
- 在
yarn-site.xml
中啟用資源調度:<property> <name>yarn.resourcemanager.hostname</name> <value>主節點IP或主機名</value> </property>
????????????????設置HADOOP_HOME
和HADOOP_CONF_DIR
環境變量4。
- ?安裝Spark?
- 下載與Hadoop兼容的Spark版本(如Spark 3.5.5對應Hadoop 3.x)4。
- 解壓至統一目錄(如
/opt/spark
),配置SPARK_HOME
環境變量4。二、Spark集成YARN配置
- ?修改
spark-env.sh
?
添加以下配置以關聯Hadoop和YARN:bashCopy Code
export JAVA_HOME=/opt/java/jdk8 export HADOOP_HOME=/opt/hadoop/hadoop-3.2.2 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export SPARK_DIST_CLASSPATH=$(hadoop classpath) # 動態加載Hadoop類路徑:ml-citation{ref="4" data="citationList"}
- ?配置
spark-defaults.conf
?
指定YARN為資源管理器:textCopy Code
spark.master yarn spark.yarn.jars hdfs:///spark/jars/* # 可選,將Spark依賴上傳至HDFS:ml-citation{ref="4,8" data="citationList"}
-
三、集群分發與服務啟動
- ?同步配置到所有節點?
使用scp
或集群管理工具(如Ansible)將配置文件和安裝目錄分發至所有工作節點4。 - ?啟動Hadoop與YARN服務?
- 啟動HDFS:
start-dfs.sh
- 啟動YARN:
start-yarn.sh
確認ResourceManager和NodeManager進程正常4。
- 啟動HDFS:
-
四、驗證集群部署
- ?提交測試任務到YARN?
使用spark-submit
提交示例程序:bashCopy Code
檢查YARN Web UI(默認端口8088)中任務狀態和日志輸出34。spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ $SPARK_HOME/examples/jars/spark-examples_2.12-3.5.5.jar 100
- ?驗證資源分配?
確認任務執行后,在YARN監控界面查看資源使用情況(CPU、內存分配)3。 -
五、注意事項
- ?版本兼容性?
Spark、Hadoop、Scala版本需嚴格匹配(如Spark 3.5.5需Scala 2.12.x和Hadoop 3.3+)48。 - ?網絡與權限?
- 確保節點間SSH無密碼互通。
- 防火墻開放YARN相關端口(如ResourceManager的8032、8088端口)4。
- ?依賴管理?
若將Spark JAR包上傳至HDFS,需提前通過hadoop fs -put
命令部署,避免任務運行時重復傳輸4。 -
以上步驟通過整合Hadoop YARN與Spark配置實現集群資源統一管理,適用于生產環境的大規模任務調度。