spark on yarn 配置
1)解压spark
[atguigu@hadoop102 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/
2)进入到/opt/module目录,修改spark-3.3.1-bin-hadoop3名称为spark-yarn
[atguigu@hadoop102 module]$ mv spark-3.3.1-bin-hadoop3/ spark-yarn
3)修改hadoop配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml,添加如下内容
因为测试环境虚拟机内存较少,防止执行过程进行被意外杀死,做如下配置
[atguigu@hadoop102 hadoop]$ vim yarn-site.xml
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
4)分发配置文件
[atguigu@hadoop102 conf]$ xsync /opt/module/hadoop/etc/hadoop/yarn-site.xml
5)修改/opt/module/spark-yarn/conf/spark-env.sh,添加YARN_CONF_DIR配置,保证后续运行任务的路径都变成集群路径
[atguigu@hadoop102 conf]$ mv spark-env.sh.template spark-env.sh
[atguigu@hadoop102 conf]$ vim spark-env.sh
YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
6)启动HDFS以及YARN集群
[atguigu@hadoop102 hadoop-3.3.1]$ sbin/start-dfs.sh
[atguigu@hadoop103 hadoop-3.3.1]$ sbin/start-yarn.sh
7)执行一个程序
[atguigu@hadoop102 spark-yarn]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
./examples/jars/spark-examples_2.12-3.3.1.jar \
10
参数:--master yarn,表示Yarn方式运行;--deploy-mode表示客户端方式运行程序
8)查看hadoop103:8088页面,点击History,查看历史页面
思考:目前是Hadoop的作业运行日志展示,如果想获取Spark的作业运行日志,怎么办?
===============================本人配置文件=======================================
spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop01:8020/spark_logs
spark.yarn.historyServer.address=bigdata01:18080
spark.history.ui.port=18080
spark.history.fs.logDirectory=hdfs://zszccluster/spark/logs
spark.eventLog.compress=true
spark.yarn.jars=hdfs://zszccluster/spark/jars/*
把spark安装目录jars下的jar包上传到 hdfs://zszccluster/spark/jars/*
缺少jar包报下边的错误
spark-env.sh
export JAVA_HOME=/usr/local/jdk
export YARN_CONF_DIR=/data/hadoop/etc/hadoop
export HADOOP_CONF_DIR=/data/hadoop/etc/hadoop
#export SPARK_MASTER_WEBUI_PORT=8989
export SPARK_DIST_CLASSPATH=$(/data/hadoop/bin/hadoop classpath)
总是报下边这个错误,加上这个配置没问题了。
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://zszccluster/spark_logs
-Dspark.history.retainedApplications=30"
问题查询引用:
https://blog.sina.com.cn/s/blog_c059d97c0102z1pz.html