Spark只比Hadoop快19% ?

Spark比Hadoop并没有想象得那么快,以前号称快100倍,实际只快19%,这是Making Sense of Performance in Data Analytics Frameworks.结论。

这个结论出乎我们意料,他们发现:分析job的性能瓶颈在CPU,而不是I/O,网络性能对于job的完成时间只有稍微影响,提高网络性能能够提高job的完成时间,平均提高约2%;大部分造成性能落后的原因都能发现并且解决。

他们发现job任务运行时间通过优化磁盘I/O性能提高不可能超过19%,他们比较了任务在运行时资源利用率,发现CPU将近100%,而磁盘利用率也只不过25%。

一个原因是分析负载导致高CPU利用率,包括反序列化和压缩,通过迁移复杂的序列化和压缩格式已经降低了I/O,提高了分析框架的CPU使用需求。

因为超高的CPU使用时间,通过硬件优化比如使用更多磁盘,使用闪存或者将序列化数据保存在内存中不会显著提高分析job的完成时间,缓存反序列化数据因为消除了反序列化耗费的时间有潜在的大的性能提高。

因此,以前号称Spark因为使用了内存避免了磁盘I/O而比Hadoop提高100倍,是要打问号的,因为该研究表明,这些分析框架的主要瓶颈在CPU,而不是磁盘I/O,使用大量的内存和快速网络,虽然避免磁盘I/O和网络瓶颈的问题,但是不会对性能有100倍那么大的效果。

参考:Spark Only 19% Faster Than Hadoop? - Rose Business

banq注:大数据分析是一种计算,重点在计算上,也就是CPU使用上,而不是空间结构的存储。所以,从逻辑上看,CPU提升才应该是计算性能提升的关键。



多核编程一直是痛点,随着CPU核心越来越多,32核,64核,128核,512核,1024核,65536核,如何充分利用cpu核心完成计算,是未来需要重点研究的课题。