大数据hadoop热度越来越高,其与spark的关系如何呢?
来源:海牛大数据 时间:2018-05-02 13:45:08 编辑:星晨
随着大数据的普及,越来越多的人开始关注大数据技术。而hadoop作为大数据技术的一个重点,无论是对于企业还是对于开发者而言都相当的重要。如今,spark的发展速度也在不断加快,其优势也在实践中得到了巨大的展现,因此,关于hadoop与spark关系的讨论也开始逐渐的深入。
众所周知hadoop是2007年发布的一个开源框架,也是Apache的一个顶级项目。多年的发展,其应用领域和技术发展程度已经达到了一个全新的高度,它的最伟大之处就是让企业能够以非常廉价的x86服务器把大量的数据管理起来。在那之前,机构需要购买极其昂贵的企业级存储设备来管理海量数据。就从这一点上,Hadoop技术已经为企业带来了很大的价值。当然,hadoop的优势还有很多,比如:
一、可扩展:如果集群现在的能力不能满足现有的需求,可以增加数据节点来实现集群的扩展,但需要具体情况具体对待;
二、经济:Hadoop集群能够在普通、廉价的硬件设备上运行,节约开支;
三、可靠:HDFS上提供副本机制,可以使得数据不会丢失,MapReduce若发现计算的数据块损坏,它会自动寻找没有损坏的数据块重新计算;
四、高效:充分利用本地数据来提高性能。
在Hadoop凭借众多优势快速发展的同时,其“竞争者”也悄然产生了。在2009年由AMPLab开发的Spark,吸取了很多Hadoop发展的经验教训,比如Hadoop对其他语言支持不够,Spark提供了Java,Scala,Python,R这些广泛受到Data Scientist欢迎的语言。站在巨人的肩膀上在一定程度上决定了spark能够看的更远。那么大数据hadoop与spark的关系究竟是怎样呢?
首先,我们可以从二者的区别来看待二者的联系。Hadoop 和Spark 两者都是大数据框架,但解决问题的层面有所不同。Hadoop更多是一个分布式数据基础设施,将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,节省了硬件成本,而Spark,则是一个专门用来对那些分布式存储的大数据进行处理的工具,依赖于分布式数据存储。当然,Spark要比Hadoop的MapReduce计算速度快很多。Spark,它会在内存中以接近“实时”的时间完成所有的数据分析,从集群中读取数据,完成所有必须的分析处理,将结果写回集群。对于动态数据实时分析而言,Spark要比Hadoop性能较为优越。比如实时的市场活动、网络安全分析等方面的应用。
其次,我们再从二者的相区别来看待二者的联系。Hadoop作为一种开源的集群,有众多的组件方便开发者安装和开发,而且开发成本相对低廉;同时,Hadoop中的Hive对SQL的支持可以使Hadoop吸收了关系型数据库的优点,便于用户对数据进行优化管理。它和Spark的区别更多的是,Spark偏重的不是数据存储而是计算,通常人们会将Hadoop和Spark结合起来使用,充分发挥其各自的优点。
分布式计算平台=分布式文件系统+分布式计算模型,我们通常讲的hadoop一般是指分布式计算平台的统称。Hadoop包含了分布式文件系统,分布式计算模型,但是没有图计算、机器学习、流式计算。Spark包含了很多,但是唯独没有包含分布式计算模型,因为HDFS做的已经足够好了。所以,现在情况就是,要么是你有的,我没有,要么是我有的,你没有。所以hadoop和spark的关系就更像是:你依赖我,我加强你,互相补充,扬长避短。
对于hadoop与spark二者的关系,它们并不是非此即彼,相互取代的关系,而是相互辅助的关系。二者的不同点、相似点决定了他们二者在大数据领域是一个相辅相成的关系,相信很多的企业和个人都不会去纠结哪一种技术会取代哪一种技术,毕竟不论是“黑猫”还是“白猫”能够抓住老鼠的就是好猫。如今大数据的发展速度越来越快,关于大数据的大讨论也在不断的深化,将来大数据必将深入到各个领域,而通过将hadoop与spark的相互作用、相互结合,也必将能够助力企业、商家更好的实现大数据的建设,从而实现更好的发展。