spark和hadoop对比分析

来源:互联网 发布:sql数据库安全性在哪 编辑:程序博客网 时间:2024/06/01 10:16

尽管Hadoop在分布式数据分析领域备受瞩目,但还是有其他选择比典型的Hadoop平台更具优势。最近很多人都在讨论Spark这个貌似通用的分布式计算模型,国内很多机器学习相关工作者都在研究和使用它。Spark是一种可伸缩(scalable)的基于内存计算(In-Memory Computing)的数据分析平台,比Hadoop集群存储方法更有性能优势。Spark采用Scala语言实现,提供了单一的数据处理环境。本文讲述Spark的集群计算方法,并与Hadoop进行比较。

Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发。UCBerkeley实验室集中了机器学习和系统结构的强大的研究力量,并与企业紧密合作,集中在热点研究方向上寻求突破。Prof. Randy H.Katz, 他关注energy efficiency in datacenter,对于hadoop系统,Datacenter的workload分析有很好的工作。Prof. Ion Stoica, 他在System方面成绩斐然,在OSDI,NSDI,SIGCOMM等会议上发了很多文章,Best Paper也拿了几个; 对DATACENTER的OS问题做了一系列漂亮的原型,SPARK,SHARK,MESOS。Prof. Michael Jordan, 他是Machine Learning方面的大牛,按这个lab的初衷,他投入到了用machine learning的技术帮助datacenter系统的分析优化工作。

Spark与Hadoop一样,是一种开源的集群计算环境,但在特定工作负载情况下比Hadoop更高效。Spark采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。Spark采用Scala语言实现,使用Scala作为应用框架。与Hadoop不同的是,Spark和Scala紧密集成,Scala像管理本地collective对象那样管理分布式数据集。Spark支持分布式数据集上的迭代式任务,实际上它可以在Hadoop文件系统上与Hadoop一起运行,这是由第三方集群框架Mesos实现的,用于构建大规模、低延时的数据分析应用。

\

Spark的创造者声称:使用Shark运行并行处理Job速度要比MapReduce快100倍。又因为Spark是在内存运行,所以Shark可与Druid或者SAP's HANA系统一较高下。Spark也为ClearStory下一代分析和可视化服务提供处理引擎。如果你喜欢用Hive作为Hadoop的数据仓库,那么你一定会喜欢Shark,因为它代表了“Hive on Spark”。

AMPLab的最新目标就是Hadoop分布式文件系统(HDFS),不过HDFS在可用性和速度方面一直受人诟病,所以AMPLab创建了Tachyon( 在High Scalability上非常夺目,引起了Derrick Harris的注意),“Tachyon是一个高容错的分布式文件系统,允许文件以内存的速度在集群框架中进行可靠的共享,类似Spark和 MapReduce。通过利用lineage信息,积极地使用内存,Tachyon的吞吐量要比HDFS高300多倍。Tachyon都是在内存中处理缓存文件,并且让不同的 Jobs/Queries以及框架都能内存的速度来访问缓存文件”。

当然,AMPLab并不是第一个对HDFS提出质疑的组织,同时也有很多商业版本可供选择,像Quantcast就自己开发了开源文件系统,声称其在运行大规模文件系统时速度更快、更高效。Spark和Scala目前都还尚处于开发中。尽管如此,随着加入更多的关键互联网特性,它越来越从有趣的开源软件过渡为基础的web技术。