对Hadoop和ApacheSPark的选择哪个更好

IT资讯 2019-05-31

我相信你和我一样读过这篇文章,对Hadoop和ApacheSPark的选择有一些疑问。在今天查阅了大量的信息之后,让我们来谈谈这两个平台的比较和选择,看看哪一个更适合工作和发展。
大数据:Hadoop还是Spark?
一、Hadoop与Spark
1.Spark
SMACK是一个快速通用的集群计算平台。在速度方面,Spark扩展了广泛使用的MapReduce计算模型,有效地支持更多的计算模型,包括交互式查询和流处理。
星火项目包含许多紧密集成的组件。spark的核心是一个计算引擎,它调度、分发和监视由多台工作机器或计算集群上运行的许多计算任务组成的应用程序。
2.Hadoop
Hadoop是ApacheFoundation开发的分布式系统基础设施。用户可以在不了解分布式底层细节的情况下开发分布式程序。充分利用集群的功率进行高速运行和存储.Hadoop框架的核心设计是HDFS和MapReduce。HDFS为海量数据提供存储,而MapReduce则为海量数据提供计算。
二、异与同
解决问题的层面不一样
首先,Hadoop和ApacheSirk都是大数据框架,但它们的存在有着不同的目的。Hadoop本质上是一种分布式数据基础设施:它将庞大的数据集分发到一个普通计算机集群中的多个节点,这意味着您不需要购买和维护昂贵的服务器硬件。同时,Hadoop将对这些数据进行索引和跟踪,使大型数据的处理和分析效率达到了前所未有的高水平。火花,是一种用来处理大数据的分布式存储,它不存储分布式数据。
两者可合可分
Hadoop提供了一个名为mapreduce的数据处理函数,以及我们都同意的HDFS分布式数据存储函数。因此,我们可以单独使用SPark,并使用Hadoop自己的MapReduce来处理数据。
相反,星火并不一定要附在Hadoop上才能生存。但如上所述,它毕竟没有提供文件管理系统,因此必须与其他分布式文件系统集成才能工作。在这里,我们可以选择Hadoop的HDF或其他基于云的数据系统平台。但是SPark在默认情况下仍然是在Hadoop上使用的,毕竟,每个人都认为他们的组合是最好的。
顺便说一句,什么是MapReduce:我们需要清点图书馆里所有的书。你数书架1,我数书架2。这是地图。我们拥有的人越多,我们就越快地数书。现在让我们一起汇总所有的统计数据。这是减少。
火花数据处理速度轻松击败MapReduce
Spark比MapReduce快得多,因为它处理数据的方式不同。MapReduce通过步骤来处理数据步骤:"从集群中读取数据,处理一次,将结果写入集群,从集群中读取更新后的数据,处理下一次,将结果写入集群等。"BoozAllenHamilton的数据科学家Kirk Borne像这样解析数据。
另一方面,Spark将在接近“实时”的时间内完成内存中的所有数据分析:“从集群中读取数据,完成所有必要的分析和处理,将结果写回集群,完成它,”Born说。SPark的批处理速度比MapReduce快近10倍,内存中数据分析的速度快近100倍。如果需要处理的数据和结果要求大部分是静态的,并且您有耐心等待批处理完成,那么MapReduce是完全可以接受的。
但是,如果需要对对流数据进行分析,例如由工厂传感器收集的数据,或者如果应用程序需要多个数据处理,则可能需要使用火花进行处理。大多数机器学习算法需要多个数据处理。此外,通常会用到Spark的应用场景有以下方面:实时的市场活动,在线产品推荐,网络安全分析,机器日记监控等。
Recovery 恢复
灾难恢复的两种方法是完全不同的,但是它们是非常好的。因为Hadoop将处理过的数据写入磁盘,所以它天生就能够抵御系统错误。Spark的数据对象存储在称为弹性分布式数据集的数据集群中。“这些数据对象可以放在内存或磁盘中,因此RDD还可以提供完整的灾难恢复功能。”
三、学哪个?
事实上,正如你所知,Spark是大数据行业的一颗新星。与Hadoop相比,Spark有很多优点。Hadoop在大数据行业中得到了很好的认可,主要是因为:
Hadoop解决了大数据的可靠存储和处理问题。
Hadoop的开源,让很多大数据从业者从中找到灵感,方便实用;
Hadoop已开发多年,具有完整的生态系统。
HDFS在普通PC上提供高可靠的文件存储,并通过存储多个块副本来解决服务器或硬盘损坏的问题。
MapReduce通过简单Mapper和Reducer的抽象提供了一个模型,它可以在数十到数百台PC机的不可靠集群上以分布式方式处理大量数据集,同时具有并发性。计算细节,如分布式和故障恢复是隐藏的。
Hadoop也有许多局限性和缺点。一般来说,在数据量增加的情况下,Hadoop的计算速度会变得越来越困难。虽然Hadoop目前在大数据产业中的应用频率仍然很高,但在几年后数据量上升几个数量级时,也不难想象Hadoop所面临的困境。Spark的计算速度比Hadoop快1%甚至更快,因此在未来,Spark将不可避免地取代Hadoop,主宰大数据产业。
所以你可以跳过Hadoop,只需要学习火花?当然不是,原因如下:
在现阶段,Hadoop仍然占据着大数据领域的主导地位,我们可以学习先进的技术,但也为了现阶段的就业目的,就现阶段而言,大数据必须学习Hadoop。
MapReduce有许多值得学习的经典思想,对我们理解大数据非常有帮助。
确切地说,SPark正在取代Hadoop中的MapReduce,而不是Hadoop,Hadoop是一个工具包,而SPark,就像MapReduce一样,只是一个工具。
结论:
如果你在算法工程领域,学习Hadoop和Spark。如果你是一个大数据研究员,那么你应该精通这两种类型。所以,这里的建议是,对于那些对ML和大数据的发展感兴趣的人来说,你可以遵循Java-Hadoop-Skar的路径。如果你有C++和SQL的基础,学习曲线就不会特别陡峭。对于spark,学习一点scala会更有帮助。

中国· 上海

谷谷二维码
添加微信咨询

CopyRight©2009-2019 上海谷谷网络科技有限公司 All Rights Reserved.  

关于我们 | 联系我们