一、安装 Spark On Yarn
在公司中,通常采用Yarn进行资源调度,故此处采用Yarn模式的集群部署。
采用Yarn部署模式时,需要保证集群中已经安装好Hadoop集群,在此基础上才能实现Yarn模式的部署。
在Yarn模式中,Spark应用程序有两种运行模式:
yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出;
yarn-cluster:Driver程序运行在由RM启动的 AppMaster中,适用于生产环境
二者的主要区别:Driver在哪里!
1. Yarn配置
修改Hadoop中的 yarn-site.xml 配置
在$HADOOP_HOME/etc/hadoop/yarn-site.xml
中增加如下配置,然后分发到集群其他节点,重启yarn 服务。(以下配置保证在运行spark job时不会抛内存不足等的异常)
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
2. Spark配置
# 进入spark配置目录
$ cd /opt/bigdata/hadoop/server/spark-3.2.0-bin-hadoop3.2/conf
# copy 一个模板配置
$ cp spark-env.sh.template spark-env.sh
在spark-env.sh下加入如下配置,并分发到各节点
# Hadoop 的配置文件目录
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# YARN 的配置文件目录
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
# SPARK 的目录
export SPARK_HOME=/opt/bigdata/hadoop/server/spark-3.2.0-bin-hadoop3.2
# SPARK 执行文件目录
export PATH=$SPARK_HOME/bin:$PATH
3. 测试验证
client运行模式
$ spark-submit --master yarn \
> --deploy-mode client \
> --class org.apache.spark.examples.SparkPi \
> $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.3.jar 20
可以在控制台输出Pi计算完成的结果:
cluster运行模式
$ spark-submit --master yarn \
> --deploy-mode cluster \
> --class org.apache.spark.examples.SparkPi \
> $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.3.jar 20
参考文献:
安装部分:
https://www.cnblogs.com/yanshw/p/11614988.html
https://juejin.cn/post/7114246197988032525#heading-14