一、模式概述
Spark 客户端直接连接 Yarn,不需要额外构建 Spark 集群。有 yarnclient 和 yarn-cluster 两种模式,主要区别在于:Driver 程序的运行节点。
yarn-client:Driver 程序运行在客户端,适用于交互、调试,希望立即看到 app 的输出
yarn-cluster:Driver 程序运行在由 RM(ResourceManager)启动的 AP(APPMaster)适用于生产环境。
运行模式图:
二、安装使用
(1)修改 hadoop 配置文件 yarn-site.xml,添加如下内容:
[atguigu@hadoop102 hadoop]$ vi 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>
(2)修改 spark-env.sh,添加如下配置:
[atguigu@hadoop102 conf]$ vi spark-env.sh
YARN_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop
(3)分发配置文件
[atguigu@hadoop102 conf]$ xsync /opt/module/hadoop2.7.2/etc/hadoop/yarn-site.xml
[atguigu@hadoop102 conf]$ xsync spark-env.sh
(4)执行一个程序
[atguigu@hadoop102 spark]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100
注意:
在提交任务之前需启动 HDFS 以及 YARN 集群。
三、日志查看
(1)修改配置文件 spark-defaults.conf
添加如下内容:
spark.yarn.historyServer.address=hadoop101:18080
spark.history.ui.port=4000
(2)重启 spark 历史服务
[atguigu@hadoop102 spark]$ sbin/stop-history-server.sh
stopping org.apache.spark.deploy.history.HistoryServer
[atguigu@hadoop102 spark]$ sbin/start-history-server.sh
starting org.apache.spark.deploy.history.HistoryServer, logging to
/opt/module/spark/logs/spark-atguiguorg.apache.spark.deploy.history.HistoryServer-1-hadoop102.out
(3)提交任务到 Yarn 执行
[atguigu@hadoop102 spark]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100
(4)Web 页面查看日志