一、基础环境准备
- 安装JDK 1.8+
所有节点需安装JDK并配置环境变量,确保JAVA_HOME
正确指向安装路径14。 - 部署Hadoop集群
-
安装Hadoop(推荐3.x版本),配置YARN资源管理器4。
-
在
yarn-site.xml
中启用资源调度: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
spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ $SPARK_HOME/examples/jars/spark-examples_2.12-3.5.5.jar 100
检查YARN Web UI(默认端口8088)中任务状态和日志输出34。 -
验证资源分配
确认任务执行后,在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配置实现集群资源统一管理,适用于生产环境的大规模任务调度。
-