首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

五种基于 MapReduce 的并行计算框架介绍及性能测试(8)实验性能对比

五种基于 MapReduce 的并行计算框架介绍及性能测试(8)实验性能对比

图 9 . 实验运行时间比较图图 9 实验运行时间比较图是分析不同大小的文本文件所消耗的时间对比图。从上图可以看出,Hadoop MapReduce 的运行时间最长,原因是 Hadoop                生态环境包含内容过多,所以每次任务启动时首先需要加载所需资源包,然后缓慢地发起任务,并且由于本身是用性能较差的 Java                语言编写的,所以导致整体计算时间长、性能差。Phoenix 由于采用汇编和 C 语言编写,内核很小,运行时所用资源很少,所以整个测试过程耗时也较少。Spark 框架在                WordCount 实验中消耗的时长较 Disco 稍少,但是比 Phoenix、Mars 耗时太多。耗时最短的两个框架是 Mars 和                Phoenix。需要时长从高到低分别是 Hadoop MapReduce、Disco、Spark、Phoenix、Mars。
图 10 .CPU 使用率对比图图 10-CPU 使用率比较图是分析任务执行过程当中 CPU 使用率情况图。从上图可以看出,Hadoop MapReduce、Disco 这两个框架需要占用的 CPU                资源在 1000M 文本处理时基本到达最大饱和度 (大于 90%),Apache Spark 的 CPU 使用率没有完全伴随着文本文件增大而大幅上涨,Phoenix 和                Mars 基本控制在对 CPU 使用率较低的范围内。
图 11 . 内存使用率对比图图 11 内存使用率比较图是分析任务执行过程中内存使用情况对比。从图中可以看出,Mars 和 Phoenix                这两款框架所使用的内存在文本数据较小时是最少的,随着文本数据的增大,Apache Spark 随着数据量增大而内存大幅增加,Mars 和 Phoenix                有一定幅度的内存使用增加趋势。当数据量达到本次测试最大的 1000M 文本时,Spark 框架对内存的消耗是最小的,Hadoop MapReduce 和 Disco                需要占用较多的内存。
从上面的测试结果我们得出,如果用户只需要处理海量的文本文件,不需要考虑存储、二次数据挖掘等,采用 Phoenix 或者 Mars 是最大性价比的选择,但是由于 Mars                必须在 GPU 上运行,本身 GPU 由于价格因素,导致不太可能在实际应用场景里推广,所以综合来看 Phoenix                是性价比最高的框架。如果应用程序需要处理的数据量非常大,并且客户希望计算出的数据可以被存储和二次计算或数据挖掘,那 Hadoop MapReduce 较好,因为整个                Hadoop 生态圈庞大,支持性很好。Apache Spark 由于架构层面设计不同,所以对于                CPU、内存的使用率一直保持较低状态,它未来可以用于海量数据分析用途。
结束语现实世界很多实例都可用 MapReduce 编程模型来表示,MapReduce                作为一个通用可扩展的、高容错性的并行处理模型,可有效地处理海量数据,不断地从中分析挖掘出有价值的信息。MapReduce                封装了并行处理、负载均衡、容错、数据本地化等技术难点细节。通过本文测试用例可以证明 MapReduce                适用于海量文本分析的应用场景,可以为处理大数据提供技术支撑。
返回列表