我相信阅读本文的人对Hadoop和Apache Spark的选择存在同样的疑虑。我今天检查了很多信息。我们来谈谈这两个平台的比较和选择。和发展,这是更好的。
大数据:学习Hadoop或Spark是否合适?
首先,Hadoop和Spark
1.Spark
Spark是一个实现快速和多功能集群计算的平台。在速度方面,Spark扩展了广泛使用的MapReduce计算模型,并有效支持更多计算模型,包括交互式查询和流处理。
Spark项目由几个紧密集成的组件组成。 Spark的核心是一个计算引擎,它可以调度,分发和监视由许多计算任务组成的应用程序,并在多个工作机器或单个计算集群上运行。
2.Hadoop
Hadoop是Apache Foundation开发的分布式系统基础结构。用户可以在不知道分发的基础细节的情况下开发分布式程序。充分利用集群的强大功能实现高速计算和存储。 Hadoop框架的核心设计是HDFS和MapReduce。 HDFS为大量数据提供存储,MapReduce为大量数据提供计算。
二,相同之处的区别
解决问题的程度不同
首先,Hadoop和Apache Spark都是大数据框架,但它们各自的用途是不同的。 Hadoop本质上是一个分布式数据基础架构。将大量数据集分发到普通计算机集群中的多个节点进行存储,这意味着您无需购买和维护昂贵的服务器硬件。同时,Hadoop还可以对这些数据进行索引和跟踪,从而实现大数据处理和分析效率。 Spark是一种用于处理分布式存储中的大数据的工具。它不存储分布式数据。
这两者可以分开
除了为每个人的共识提供HDFS分布式数据存储外,Hadoop还提供了一个名为MapReduce的数据处理功能。所以在这里我们可以完全抛弃Spark并使用Hadoop自己的MapReduce来完成数据处理。相反,Spark不必依靠Hadoop来生存。但是如上所述,它毕竟不提供文件管理系统,因此必须与其他分布式文件系统集成才能运行。在这里我们可以选择Hadoop HDFS,还可以选择其他基于云的数据系统平台。但默认情况下,Hadoop仍然使用Spark。毕竟,每个人都认为他们的组合是***。
顺便说一下,mapreduce是什么:我们必须统计图书馆里的所有书籍。你算上1号书架,我数着2号书架。这是“地图”。我们越多,书籍就越快。现在让我们聚在一起,将每个人的统计数据加在一起。这是“减少”。
Spark数据处理速度加快MapReduce
Spark比MapReduce快得多,因为它以不同的方式处理数据。 MapReduce是数据的逐步处理。“从集群读取数据,执行一次处理,将结果写入集群,从集群读取更新的数据,执行下一个处理,并将结果写入集群。等等.”Bork Allen Hamilton的数据科学家Kirk Borne对此进行了分析。
相比之下,Spark在近乎实时的时间内对内存中的所有数据进行分析:“从集群中读取数据,进行所有必要的分析,将结果写回集群,然后完成,”Born说。 Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度快近100倍。如果在大多数情况下需要处理的数据和结果要求是静态的,并且您有耐心等待批处理完成,MapReduce也是完全可以接受的。
但是,如果您需要分析对流数据,例如从工厂传感器收集的数据,或者您的应用程序需要多个数据处理,那么您应该使用Spark进行处理。大多数机器学习算法需要多个数据处理。此外,Spark的应用场景通常用于以下几个方面:实时营销活动,在线产品推荐,网络安全分析,机器日记监控等。
复苏
两者的灾难恢复方法有很大不同,但它们非常好。由于Hadoop在每次写入磁盘后都会写入数据,因此处理系统错误本身就很灵活。 Spark的数据对象存储在分布在数据集群中的分布式分布式数据集(RDD: Resilient Distributed Dataset)中。 “这些数据对象可以放在内存中或磁盘上,因此RDD也可以提供完整的灾难恢复。”三,哪一个学习?
事实上,正如您所知,Spark确实是大数据行业的后起之秀。与Hadoop相比,Spark有许多优点。 Hadoop之所以在大数据行业得到充分认可,主要是因为:
Hadoop解决了大数据可靠存储和处理的问题;
Hadoop的开源,可以让许多大数据从业者找到灵感,方便实用;
Hadoop多年来一直在发展,并拥有完整的生态系统。
HDFS在普通PC群集上提供高度可靠的文件存储,并通过保存块的多个副本解决了服务器或硬板故障的问题。
MapReduce通过简单的Mapper和Reducer的抽象提供了一个模型。它可以在由数十台到数百台PC组成的不可靠集群上同时并分布式处理大量数据集。隐藏了样式和故障恢复等计算细节。
Hadoop也有很多局限和缺陷。通常,当数据量不断增加时,Hadoop的计算速度将变得越来越困难。尽管Hadoop在此阶段仍然在大数据行业中具有高频应用,但不难想象当数据量在几年内上升几个数量级时Hadoop面临的困境。 Spark的计算速度是Hadoop的1%或更快,因此在未来,Spark将不可避免地取代Hadoop并主导大数据行业。
是否有可能跳过Hadoop只学习Spark?当然不是,原因如下:
在这个阶段,Hadoop仍然主导着大数据领域。我们可以学习先进技术,但它适用于目前的就业阶段。在目前阶段,学习大数据必须学习Hadoop。
MapReduce中有许多经典的想法值得学习,这对我们理解大数据非常有帮助。
确切地说,Spark取代了Hadoop中的MapReduce而不是Hadoop。 Hadoop是一个工具包,Spark就像MapReduce一样。
结论:
如果你正在开发这个行业的工程,那么两个都必须学习,Hadoop才能理解,Spark应该是熟悉的。如果您是一名大数据研究员,请熟练掌握两者。因此,这里的建议是,对于那些有兴趣在ML和大数据领域开发的人,你可以遵循Java - Hadoop - Spark的路径。如果你有C ++和SQL的基础,那么学习曲线就不会特别陡峭。对于火花,学习一点Scala会更有帮助。