如何搭建spark yarn模式的集群
一、系统准备
-
操作系统:建议使用 CentOS、Ubuntu 等 Linux 发行版。
-
Java 环境:确保安装了 JDK 1.8 或以上版本。
-
网络配置:确保集群中的所有节点能够互相通信,主机名和 IP 地址需正确配置。
二、安装 Hadoop
-
下载 Hadoop:从 Apache Hadoop 官方网站下载适合的版本。
-
解压安装:
bash复制
tar -zxvf hadoop-x.y.z.tar.gz -C /opt/ mv /opt/hadoop-x.y.z /opt/hadoop -
配置环境变量: 在
bash/etc/profile文件中添加以下内容:复制
export HADOOP_HOME=/opt/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH然后执行
source /etc/profile使变量生效。 -
配置 Hadoop:
-
编辑
core-site.xml和hdfs-site.xml文件,配置 HDFS。 -
编辑
yarn-site.xml文件,配置 YARN。
-
三、安装 Spark
-
下载 Spark:从 Apache Spark 官方网站下载预编译的 Spark 包,选择与 Hadoop 版本兼容的版本。
-
解压安装:
bash复制
tar -zxvf spark-x.y.z-bin-hadoopx.y.tgz -C /opt/ mv /opt/spark-x.y.z-bin-hadoopx.y /opt/spark -
配置环境变量: 在
bash/etc/profile文件中添加以下内容:复制
export SPARK_HOME=/opt/spark export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH然后执行
source /etc/profile使变量生效。
四、配置 YARN
-
配置 Spark:
-
进入 Spark 的
bashconf目录:复制
cd /opt/spark/conf -
复制并编辑
bashspark-env.sh文件:复制
cp spark-env.sh.template spark-env.sh vim spark-env.sh添加以下内容:
bash复制
export JAVA_HOME=/path/to/java export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop export YARN_CONF_DIR=/opt/hadoop/etc/hadoop -
复制并编辑
bashspark-defaults.conf文件:复制
cp spark-defaults.conf.template spark-defaults.conf vim spark-defaults.conf添加以下内容:
bash复制
spark.master yarn spark.submit.deployMode cluster spark.eventLog.enabled true spark.eventLog.dir hdfs://master:9820/spark/eventLogs spark.yarn.historyServer.address master:18080 spark.yarn.jars hdfs://master:9820/spark/jars/* -
修改
bashlog4j.properties文件,将日志级别设置为 WARN:复制
log4j.rootCategory=WARN, console
-
-
上传 Spark JAR 包到 HDFS:
bash复制
hdfs dfs -mkdir -p /spark/jars hdfs dfs -put /opt/spark/jars/* /spark/jars/ -
修改 YARN 配置文件: 编辑 Hadoop 的
xmlyarn-site.xml文件,添加以下内容:复制
<property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <property> <name>yarn.log.server.url</name> <value>http://master:19888/jobhistory/logs</value> </property> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>然后将修改后的
yarn-site.xml文件分发到所有节点。
五、启动集群
-
启动 HDFS 和 YARN:
bash复制
start-dfs.sh start-yarn.sh -
启动 Spark 的 History Server:
bash复制
/opt/spark/sbin/start-history-server.sh
六、测试集群
-
提交 Spark 作业:
bash复制
spark-submit --master yarn --deploy-mode cluster examples/src/main/python/pi.py 1000 -
查看作业运行情况: 打开浏览器访问 YARN 的 Web UI,查看作业运行状态。
七、注意事项
-
确保所有节点的时钟同步。
-
如果遇到权限问题,可以尝试调整 HDFS 和 Spark 目录的权限。
-
如果集群中有防火墙,需要开放相关端口。
通过以上步骤,您就可以成功搭建一个 Spark on YARN 模式的集群。
更多推荐


所有评论(0)