前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EMR Remote Shuffle Service

EMR Remote Shuffle Service

作者头像
sparkle123
发布2021-03-03 11:15:59
1.4K0
发布2021-03-03 11:15:59
举报

ESS(EMR Remote Shuffle Service)是EMR在优化计算引擎的Shuffle操作上,推出的扩展组件。

背景信息

目前Shuffle方案缺点如下:

  • Shuffle Write在大数据量场景下会溢出,导致写放大。
  • Shuffle Read过程中有大量的网络小包导致Connection reset问题。
  • Shuffle Read过程中存在大量小数据量的IO请求和随机读,对磁盘和CPU造成高负载。
  • 对于M*N次的连接数,在M和N数千的规模下,作业基本无法完成。
  • NodeManager和Spark Shuffle Service是同一进程,当Shuffle的数据量特别大时,通常会导致NodeManager重启,从而影响YARN调度的稳定性。

EMR推出的基于Shuffle的ESS服务,可以优化目前方案的问题。优势如下:

  • 使用Push-Style Shuffle代替Pull-Style,减少Mapper的内存压力。
  • 支持IO聚合,Shuffle Read的连接数从M*N降到N,同时更改随机读为顺序读。
  • 支持两副本机制,降低Fetch Fail概率。
  • 支持计算与存储分离架构,可以部署Shuffle Service至特殊硬件环境中,与计算集群分离。
  • 解决Spark on Kubernetes时对本地磁盘的依赖。

ESS架构图

image.png

使用ESS

Spark使用ESS时,只需在提交Spark作业时添加如下两个配置项

代码语言:javascript
复制
spark.shuffle.manager   org.apache.spark.shuffle.ess.EssShuffleManager 固定值
spark.ess.master.address  <ess-master-ip>:<ess-master-port>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景信息
  • ESS架构图
  • 使用ESS
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档