spark on yarn配置External Shuffle Service

1、Shuffle Service介绍

Shuffle描述着数据从map task输出到reduce
task输入的这段过程。shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。因为在分布式情况下,reduce
task需要跨节点去拉取其它节点上的map
task结果。这一过程将会产生网络资源消耗和内存,磁盘IO的消耗。通常shuffle分为两部分:Map阶段的数据准备和Reduce阶段的数据拷贝处理。一般将在map端的Shuffle称之为Shuffle
Write,在Reduce端的Shuffle称之为Shuffle Read

2、编写配置文件/data/hadoop/etc/hadoop/yarn-site.xml并分发到所有hadoop节点

vi /data/hadoop/etc/hadoop/yarn-site.xml

修改如下:

	<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle,spark_shuffle</value>
    </property>
    <property>
    	<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
    	<value>org.apache.spark.network.yarn.YarnShuffleService</value>
    </property>
    <property>
   	 <name>spark.shuffle.service.port</name>
    	<value>7337</value>
    </property

在这里插入图片描述

注:如果不使用MapReduce,yarn.nodemanager.aux-services中只填写spark_shuffle即可

3、复制spark_shuffle jar包到yarn下(所有hadoop节点上执行)

cp /data/spark/yarn/spark-2.4.8-yarn-shuffle.jar /data/hadoop/share/hadoop/yarn/lib/

4、配置spark 客户端文件spark-defaults.conf(所有hadoop节点上进行)

cp /data/spark/conf/spark-defaults.conf.template  /data/spark/conf/spark-defaults.conf
vi /data/spark/conf/spark-defaults.conf

添加如下

spark.shuffle.service.enabled   true
spark.shuffle.service.port      7337

5、重启yarn集群
停止集群:
主节点:

 stop-yarn.sh

备用节点:

 yarn-daemon.sh stop resourcemanager

启动集群:
主节点:

start-yarn.sh

备用节点:

yarn-daemon.sh start resourcemanager
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值