RSS 使用和性能展示

开源大数据社区 & 阿里云 EMR 系列直播 第九期

主题:RSS 使用和性能展示

讲师:枢木,开源大数据平台高级开发工程师

内容框架:

  • RSS 介绍

  • RSS 使用

  • RSS 性能

直播回放:扫描文章底部二维码加入钉群观看回放

1

RSS 介绍   

Spark Shuffle

  • 产生 numMapper* numReducer 个 block

  • 顺序写、随机读

  • 写时 Spill

  • 单副本,丢数据需 stage 重算

EMR Remote Shuffle Service

  • 追加写、顺序读

  • 无写时 Spill

  • 两副本;副本复制到内存后即完成

  • 副本之间通过内网备份,无需公网带宽

EMR Remote Shuffle Service 整体流程

容错

  • Shuffle Write 以 batch 为基本单位

  • Batch 头包含 16 个 Byte:

    • MapId

    • AttemptId

    • BatchId

    • Size

  • Driver 中纪录成功的 MapId 和 AttemptId

  • 读时根据 MapId 和 AttemptId 和 BatchId 进行过滤

负载均衡

  • Worker 在启动时,注册到 Master 中,注册需要包含 Worker 自身的 Slot 数量。

  • Register Shuffle 时,由 executor 进行 Shuffle Writer 时发起 Request,注册到 EssMetaSystem,之后由 Driver 向 Master 为每个 reduce 申请 slots。

  • EssMetaSystem 向所有涉及到的 Worker 发送 Reserve Buffer 请求。

  • EssMetaSystem 纪录返回到 Worker 和 Slot 之间的对应关系。

  • 在发生 Revive 时,EssMetaSystem 直接根据保存到 Worker 进行 Slot 申请。

RSS + AQE (coalesce partition)

RSS可以直接适配 AQE 的 Coalesce Partition

RSS + AQE (local shuffle read)

  • 正常 Join 参与 Join 的表都需要进行 shuffle

  • AQE 中 Local Shuffle Read 可以将参与 Join 的小表直接 Broadcast,但由于已经执行了 Shuffle Write,所以需要读取 shuffle write 数据;即每个 reduce 直接读取一个 map 数据文件作为新的 partition。

  • RSS 适配时 AQE 的 Local Shuffle Read 时可以参考 Coalesce Partition。即需要修改 Spark AQE 源码以支持。

RSS + AQE (skew join)

  • Skew Join 时,Spark AQE 在 shuffle read 时读取部分 Map 中的 partition。

  • RSS 适配 AQE 时,reduce 根据 MapId 进行过滤。

2

RSS 使用    

基础命令:

spark-submit/spark-sql/spark-shell–-master [ yarn | spark:// | k8s:// ] \

--deploy-mode [ client | cluster ] \

--conf spark.shuffle.service.enabled=false\

--conf spark.dynamiacAllocation.enabled=false\

--conf spark.serializer=org.apache.spark.
  serializer.KryoSerializer\

--conf spark.sql.adaptive.skewJoin.enabled=
   false\

--conf spark.sql.adaptive.localShuffleReader.
   enabled=false\

--conf spark.shuffle.manager=org.apache.spark.
   shuffle.ess.EssShuffleManager\

--conf spark.ess.master.address=host:port

具体实操演示可点击文章下方阅读原文观看视频回放

2

RSS 使用    

RSS TeraSort Benchmark

备注说明:以10T Terasort 为例,shuffle 量压缩后大约5.6T。可以看出该量级的作业在 RSS 场景下,由于 shuffle read 变为顺序读,性能会有大幅提升。

RSS TPCDS Benchmark

  • 由于大 shuffle 任务能够充分利用顺序读的优势,所以性能很好,对于中型的ETL作业来说会有非常大的收益。除性能外,由于解决了 shuffle fetch 失败带来的 stage 重算,作业会非常稳定。

  • 小 shuffle(大约10几G级别)作业会因为网络写的原因有部分性能降低,属于预期之内。由于整体的运行时间本身就很短,所以时间差很小。

对应产品介绍,可以直接点击文章下方阅读原文观看视频,也可以扫描文章底部钉钉群二维码,进群观看直播回放哦!

END

阿里巴巴开源大数据技术团队成立 Apache Spark 中国技术社区,定期推送精彩案例,技术专家直播,问答区 Spark 技术同学在线提问答疑,只为营造纯粹的 Spark 氛围,欢迎钉钉扫码加入!

????戳阅读原文,快速回看直播视频~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值