Spark系列——运行模式(三)Yarn模式配置(详解)

yarn模式

00_介绍

Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。

yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出。

yarn-cluster:Driver程序运行在由RM(ResourceManager)启动的AP(APPMaster)适用于生产环境。

Yarn运行模式如图:
在这里插入图片描述

01_配置

1.1,修改hadoop的配置文件 yarn-site.xml,完了分发给其他节点。

由于我们的测试环境虚拟机太少,防止将来任务被意外杀死。

cd /usr/hadoop/hadoop-2.10.0/etc/hadoop/
vi yarn-site.xml 
#添加以下在configuration标签中间
<!--是否启动一个线程检查每个任务正使用的物理内存量。如果任务使用的内存量超出分配值,则会被中断。默认是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>
#分发    
scp -r yarn-site.xml slave1:/usr/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r yarn-site.xml slave2:/usr/hadoop/hadoop-2.10.0/etc/hadoop/

1.2,复制spark,并命名为spark-yarn

cp -r spark-2.4.0-bin-hadoop2.7 spark-yarn

1.3,修改spark-env.sh文件

mv spark-env.sh.template spark-env.sh
for i in *.template; do mv ${i} ${i%.*}; done
HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.10.0/etc/hadoop

1.4,修改环境变量

vi /etc/profile
export SPARK_HOME=/usr/hadoop/spark-yarn
export PATH=$PATH:$SPARK_HOME/sbin:$SPARK_HOME/bin
source /etc/profile

1.5,添加历史服务

1.5.1配置env.sh

vi spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://node1:8020/spark-logs-yarn"

1.5.2 创建日志目录,hadoop得开启才行

 bin/hadoop fs -mkdir /spark-logs-yarn

1.5.3配置defaults.conf

vi spark-defaults.conf 
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://node1:8020/spark-logs-yarn

1.6,例子

从spark-shell日志中看到spark-shell --master yarn-client命令从Spark2.0开始废弃了,可以换成spark-shell --master yarn --deploy-mode client。

注意:
(1)在提交任务之前需启动HDFS以及YARN集群。
(2)若对hadoopUI页面访问端口号有疑问,可参考文章大数据平台——Hadoop环境配置

(1) 在shell中

spark-shell --master yarn --deploy-mode client
scala> val rdd=sc.parallelize(1 to 100,5)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:24

scala> rdd.count
res0: Long = 100   

(2) 直接在spark-yarn

bin/spark-submit \
--master yarn \
--class org.apache.spark.examples.SparkPi \
--deploy-mode client \
./examples/jars/sp,,,,, \ #架包的路径
100

02_总结

(1)单机和yarn模式不能配到一台上,配置spark环境变量会冲突,而且yarn-UI也访问不了

(2)yarn模式不需要配spark的集群,用它的时候先把hadoop启动

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值