Shuffle作为大数据离线计算平台中最重要的模块,其性能直接影响作业的运行时效性和平台资源消耗。为进一步提高平台计算效能,百度研发了新型的流式Shuffle服务,降低框架资源消耗,提升框架计算有效性,进一步强化平台计算能力。流式Shuffle服务已成功应用于百度十万级规模的离线计算平台,收益显著。主要介绍点:流式shuffle&内存push(map数据不落盘);Pipeline;Shuffle结果高度预聚合&多副本持久化;负载均衡与流控;去重与异常处理;多路输入多路输出(MIMO);面向人群:架构师、大数据应用者、大数据框架开发者。
背景
据张老师介绍,百度私有云架构最底层有百度自研的高精硬件,上层包括集群操作系统Matrix,Normandy统一资源调度。
百度大数据离线计算平台:
一般Shuffle模式:
Shuffle作为大数据离线计算平台中最重要的模块,其性能直接影响作业的运行时效性和平台资源消耗。为进一步提高平台计算效能,百度研发了新型的流式Shuffle服务,降低框架资源消耗,提升框架计算有效性,进一步强化平台计算能力。
谈到平台发展历程时,张老师首先介绍主要的离线计算模型——MapReduce,百度从2007年开始引进Hadoop 0.15.1,随后快速发展,2011年百度的MR单集群规模达到5000台,到2013年已经多达1.3万台,这也是截止到目前为止全世界最大的单集群。Hadoop全集群规模为10万量级,作业量达到了百万量级,日均CPU利用率超过80%,远超业界同行,百度开放云底层依赖的大规模集群调度、资源隔离等技术能力世界领先。
除了在规模方面不断扩大,百度一直在Hadoop性能分析方面进行了大量的优化。2013年的测试结果显示,百度内部MR实现相比于开源Hadoop性能提升30%。典型优化,例如Hadoop中的Shuffle,我们将其做成一个统一的shuffle服务,不再占用Map或Reduce槽位。比如对关键热点函数采用SSE向量化等。
架构
流式Shuffle服务已成功应用于百度十万级规模的离线计算平台,收益显著。面向架构师、大数据应用者、大数据框架开发者等人群,张老师主要介绍了流式shuffle&内存push(map数据不落盘);Pipeline;Shuffle结果高度预聚合&多副本持久化;负载均衡与流控;去重与异常处理;多路输入多路输出(MIMO)。
关键技术
ShuffleMaster:
Writer:
Shuffler:
Reader:所有Map完成后,调度Reduce,直接读取DFS排好序的数据,去重&数据验证,多路归并排序。
Map Pipeline:Map端Writer,要等Shuffler将数据持久化到DFS后,才能将发送的rpc buffer释放,所有发送的数据被Shuffler持久化后,Map才能安全退出。
收益与总结
收益,流式shuffle:减少旧shuffle map merge、reduce pull时间消耗;内存Push:map端不落盘;Shuffler内存聚合:聚合度高,减少map端seek,减少reduce端merge路数,减少IO;Pipeline:大大提高中小作业map端运行速度;中间数据持久化:避免重算(对dag作业尤为重要)。
流式Shuffle服务,push instead of pull;Shuffle过程交给能拿到更多全局信息、更专业的shuffler来做;Map、Shuffler、Reduce,每个都做自己最适合做且擅长做的事情;Shuffle与Reduce解耦,简化Reduce,也为解决分桶不均问题提供可能;Pipeline;无缝的流线,减少无谓的等待。
问题:更多的网络io(万兆网卡,网络不是瓶颈);Shuffler资源共享,作业间可能互相影响(让Shuffler资源非瓶颈)。
下一步计划
浏览7433次
浏览5253次
浏览4216次
浏览7657次
浏览9599次
浏览1401次
2025-01-08 昆明
2025-06-20 深圳
2025-04-19 南京
2025-08-15 上海
打开微信扫一扫,分享到朋友圈