开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

Shuffle Service 的容错机制是什么?

已解决

Shuffle Service 的容错机制是什么?

展开
收起
游客lmkkns5ck6auu 2022-08-10 10:59:08 287 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    Shuffle service 的归集思想在公司内外都有不同的工作展现类似的思想,但都限于 “跑分”和小范围使用。因为这种模式对于各环节的错误天生处理困难。

    以 shuffle agent 文件丢失/损坏是大数据作业的常见问题为例,传统的文件系统shuffle 可以直接定位到出错的数据文件来自哪个 mapper,只要重跑这个 mapper 即可恢复。但在前述 shuffle service 流程中,由于 shuffle agent 输出的 shuffle这个文件包含了来自所有 mapper 的 shuffle 数据,损坏文件的重新生成需要以重跑所有 mapper 为代价。如果这种机制应用于所有线上作业,显然是不可接受的。设计了数据双副本机制解决了这个问题,使得大多数通常情况下 reducer 可以读取到高效的 agent 生成的数据,而当少数 agent 数据丢失的情况,可以读取备份数据,备份数据的重新生成只依赖特定的上游 mapper。

    具体来说,mapper 产生的每份 shuffle 数据除了发送给对于 shuffle agent 外,也会按照与传统文件系统 shuffle 数据类似的格式,在本地写一个备份。按前面所述,这份数据写的代价较小但读取的性能不佳,但由于仅在 shuffle agent 那个副本出错时才会读到备份数据,所以对作业整体性能影响很小,也不会引起集群级别的磁 盘压力升高。

    有效的容错机制使得 shuffle service 相对于文件系统 shuffle,在提供更好的作业性能的同时,因 shuffle 数据出错的 task 重试比例降低了一个数量级,给线上全面投入使用打好了稳定性基础。

    以上内容摘自《“伏羲”神算》电子书,点击https://developer.aliyun.com/topic/download?id=873

    2022-08-10 18:00:32
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
Codis 集群演化与 Redis 异步迁移 立即下载
开源广进-用Service Catalog构造K8S服务能力 立即下载