环境准备
- 确保已正确安装并配置好 Hadoop 和 YARN。
- 确保已安装 Spark。
配置文件修改
-
修改
spark-env.sh文件-
复制模板文件:
cp spark-env.sh.template spark-env.sh。 -
添加以下内容:
bash
复制
export JAVA_HOME=/path/to/java export HADOOP_CONF_DIR=/path/to/hadoop/etc/hadoop export YARN_CONF_DIR=/path/to/hadoop/etc/hadoop其中
/path/to/java和/path/to/hadoop替换为实际路径。
-
-
修改
spark-defaults.conf文件-
复制模板文件:
cp spark-defaults.conf.template spark-defaults.conf。 -
添加以下配置:
properties
复制
spark.master yarn spark.eventLog.enabled true spark.eventLog.dir hdfs://namenode:port/spark-logs spark.history.fs.logDirectory hdfs://namenode:port/spark-logs spark.yarn.historyServer.address http://namenode:18080 spark.yarn.jars hdfs://namenode:port/spark-jars/*其中
namenode和port替换为实际的 HDFS NameNode 地址和端口。
-
-
修改
yarn-site.xml文件-
在 Hadoop 的
yarn-site.xml文件中,添加以下配置:xml
复制
<property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property>这些配置用于禁用 YARN 对容器的内存限制。
-
配置文件分发
- 将修改后的配置文件分发到集群中的所有节点。
启动相关服务
- 启动 YARN 服务:
start-yarn.sh。 - 启动 Spark History Server:
$SPARK_HOME/sbin/start-history-server.sh。 - 启动 Hadoop 的 JobHistory Server:
mapred --daemon start historyserver。
提交 Spark 作业
-
使用以下命令提交 Spark 作业:
bash
复制
spark-submit --master yarn --class your.ClassName your-jar-file.jar其中
your.ClassName和your-jar-file.jar替换为实际的类名和 JAR 文件。
验证
- 访问 YARN 的 UI 界面(通常是
http://namenode:8088),查看 Spark 应用程序是否正常运行