在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

排序性能 PK:Spark 完胜 MapReduce

  • 2014-10-15
  • 本文字数:1223 字

    阅读完需:约 4 分钟

作为 Hadoop MapReduce 后继者 Apache Spark 可以支撑数千节点规模的集群部署,尤其在内存数据处理上,Spark 比 MapReduce 更加高效,且支持 GB 或 TB 级别的数据。然而很多人都认为在磁盘数据计算上,MapReduce 比 Spark 更有优势。近日,大数据公司 Databricks 为了评估 Spark 在 PB 级磁盘数据计算的运行状况, 其技术团队使用 AWS 进行了一个 Daytona Gray 类别的排序基准测试。测试结果显示Spark 打破了MapReduce 保持的排序性能记录。这次测试是一个考量系统排序100TB 数据(约万亿条记录)速度的行业基准测试。在此之前,这项基准测试的世界记录保持者是雅虎,他们使用2100 节点的MapReduce 集群在72 分钟内完成了计算。而本次测试Spark 只使用了206 个EC2 节点,就将排序用时缩短到了23 分钟。也就是说在相同数据的排序上,Spark 只使用了1/10 的计算资源就比MapReduce 快了近3 倍。

此外,在Spark 官方没有PB 数量级排序对比的情况下,Databricks 技术团队首次开展了1PB 数据(十万亿条记录)的排序测试。这个测试使用了190 个EC2 节点耗时不到4 个小时,同样远超雅虎之前使用3800 台主机、耗时16 个小时的记录,这也是在公用云环境中,首次完成的PB 级排序测试。以上两个测试的具体结果如下表:

Hadoop 保持记录

Spark 100 TB

Spark 1 PB

数据大小

102.5 TB

102 TB

1000 TB

耗时

72 分钟

23 分钟

234 分钟

节点数

2100

206

190

# Cores

50400

6592

6080

# Reducers

10,000

29,000

250,000

Rate

1.42 TB/min

4.27 TB/min

4.27 TB/min

Rate/node

0.67 GB/min

20.7 GB/min

22.5 GB/min

Daytona Gray 类别排序基准规则

环境

专用的数据中心

EC2 (i2.8xlarge)

EC2 (i2.8xlarge)

Spark 有以上的性能表现是因为 Databricks 与 Spark 社区为 Spark 在稳定性、扩展性、性能等方面的做了不断的改进,尤其是在超大规模工作负载下,他们投入了大量的精力来提升 Spark 的性能。从细节上看,与这个基准测试高度相关的工作主要有三个,首先,也是最关键的,在 Spark 1.1 中他们引入了一个全新的 Shuffle 实现,也就是基于排序的 Shuffle( SPARK­-2045 )。其次,他们修订了 Spark 的网络模型,通过 JNI( SPARK­-2468 )使用基于 Netty 的 Epoll 本地端口传输。同时,新的模型还拥有了独立的内存池,绕过了 JVM 的内存分配器,从而减少垃圾回收造成的影响。最后,他们创建了一个外部 Shuffle 服务( SPARK­-3796 ),它与 Spark 本身的执行器完全解耦,这个新的服务基于上文所述的网络模型。得益于以上三项改进措施, 在 map 阶段,Spark 集群的单节点能够支撑每秒 3GB 的 IO 吞吐量,在 reduce 阶段,单节点能够支撑每秒 1.1GB 的 IO 吞吐量。其他更多的技术细节包括 TimSort 排序算法的实现、缓存位置的利用、Spark 的容错机制以及 AWS 方面的增强等。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-10-15 14:283625
用户头像

发布了 92 篇内容, 共 52.0 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

【绝对干货】超全Android中高级面试复习大纲,安卓面试题目2019

android 程序员 移动开发

一位Android程序员入坑Flutter后整理出一份超详细的学习笔记

android 程序员 移动开发

一文读懂 AOP _ 你想要的最全面 AOP 方法探讨,kotlin数据库框架

android 程序员 移动开发

浪潮云说丨千呼万唤,浪潮云智能视觉来了!

云计算

一个优秀程序员不可避免的问题:内存泄漏,ffmpeg音视频开发实战6下载

android 程序员 移动开发

直播回顾 | MatrixDB 定义下一代时序架构(内附PPT下载)

YMatrix 超融合数据库

车联网 物联网 时序数据库 MatrixDB 超融合时序数据库

一文了解Dart语法,kotlin密封接口

android 程序员 移动开发

【带着问题学】关于LeakCanary2,2021百度Android岗面试真题收录解析

android 程序员 移动开发

9.9元试用无影电脑,开启云上办公娱乐新体验

【转载】3-5年的Android工程师最容易遇到4个瓶颈是什么

android 程序员 移动开发

一个34岁出来面试还被拒绝的Android程序员有多惨?,android开发软件安装JAVA路径

android 程序员 移动开发

【建议收藏】Android中高级大厂面试源码秘籍,面试题+笔记+项目实战

android 程序员 移动开发

【微信小程序】开发实战 之 ,这份333页关于性能优化知识点的PDF你不能不看

android 程序员 移动开发

【译】Flutter 2,Android程序员必会

android 程序员 移动开发

下一个三年,联想要寻找取天火的人

脑极体

【面试专题】2021年字节,面试安卓工程师会问到那些问题

android 程序员 移动开发

一文理解模块化、组件化、插件化的区别,最新Android高级面试题汇总

android 程序员 移动开发

一个五年Android开发者小米、阿里、字节跳动,最新阿里+头条+腾讯大厂Android笔试真题

android 程序员 移动开发

一年Android工作经验,一举拿下百度、网易,38岁的中年失业者怎么活下去

android 程序员 移动开发

【孔乙已】生产者消费者有四样写法,android插件化和组件化

android 程序员 移动开发

【最强】Android 项目集成 Flutter 实战分享,精通android游戏开发

android 程序员 移动开发

【自学Flutter】4,安卓移动开发基础案例教程

android 程序员 移动开发

【译】Flutter vs React Native vs Native,android开发社区

android 程序员 移动开发

【需求解决系列之四】Android App 在线 自动更新,android观察者模式

android 程序员 移动开发

【面试官爸爸】来给我讲讲View绘制,腾讯T2亲自教你

android 程序员 移动开发

技术创新+开放共赢 华为云GaussDB加速企业数字化转型

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

【原理+实战,android音视频开发何俊林

android 程序员 移动开发

【建议收藏】Android中高级大厂面试源码秘籍(1),android开发实战湖南师范大学出版社

android 程序员 移动开发

一个Android开发真实的996生活,我们到底在追求什么?,kotlin中文教程

android 程序员 移动开发

一个HashMap,阿里面试官竟然跟我扯了半个小时!,掌握这6大技能体系

android 程序员 移动开发

排序性能PK:Spark完胜MapReduce_语言 & 开发_李士窑_InfoQ精选文章