2020-12-29 16:32:14 阅读(139)
说到大数据,相信大家对Hadoop和ApacheSpark这两个名字并不陌生。但我们对他们的理解往往只是字面上的,没有深入思考。让我们和我一起看看他们有什么不同。首先,Hadoop和ApacheSpark都是大数据框架,但它们的目的不同。本质上,Hadoop更像是一个分布式数据基础设施:它将巨大的数据集分配到一个由普通计算机组成的集群中的多个节点进行存储,这意味着您不需要购买和维护昂贵的服务器硬件。与此同时,Hadop还对这些数据进行索引和跟踪,使大数据处理和分析效率达到前所未有的高度。Spark,它是一种专门用于处理分布式存储大数据的工具,它不会存储分布式数据。除了提供共识的HDFS分布式数据存储功能外,还提供了称为Mapreduce的数据处理功能。所以在这里,我们可以抛开Spark,用Hadoop自己的Mapreduce完成数据处理。相反,Spark不必依附于Hadop才能生存。但是,毕竟它没有提供文件管理系统,所以它必须与其他分布式文件系统集成才能运行。我们可以选择HadopHDFS,也可以选择其他基于云的数据系统平台。但是Spark默认用在Hadoop上,毕竟大家都认为它们的结合是最好的。以下是从网上摘录的Mapreduce最简洁明了的分析:我们要数图书馆里所有的书。你数1号书架,我数2号书架。这就是“Map”。人越多,数书就越快。现在我们在一起,把大家的统计数加在一起。这就是“Reduce”。熟悉Hadoop的人应该知道,用户首先编写一个程序,我们称之为Mapreduce程序,Mapreduce程序是Job,Job中可以有一个或多个Task,Task可以分为Maptask和ReduceTask,如下图所示:Spark中也有Job概念,但这里的Job不同于Mapreduce中的Job。它不是操作的最高粒度,只有Application的概念。Application与Sparkcontext有关,每个Application中可以有一个或多个Job,可以并行或串行运行Job。Application与Sparkcontext有关,每个Application中可以有一个或多个Job,可以并行或串行运行Job。Spark中的Action可以触发Job的运行。Job包含多个Stage,Stage分为Shufle。多个Task包含在Stage中,多个Task构成Taskset。他们之间的关系如下图所示:Mapreduce中的每个Task都在自己的过程中运行,当Task完成时,过程就结束了。与Mapreduce不同的是,Spark中的多个Task可以在一个过程中运行,即使没有Job,这个过程的生命周期也与Application一样。这个模型有什么好处?Spark的运行速度可以加快!Tasks可以快速启动并处理内存中的数据。然而,该模型的一些缺点是粗粒度的资源管理。每个应用程序都有固定数量的executor和固定数量的内存。Spark会比Mapreduce快很多,因为它处理数据的方式不同。Mapreduce分步处理数据:“从集群中读取数据,进行一次处理,将结果写入集群,从集群中读取更新后的数据,进行下一次处理,将结果写入集群,等等...“BoozalenHamilton的数据科学家KirkBorne如此分析。另一方面,Spark将在内存中以接近“实时”的时间完成所有数据分析:“从集群中读取数据,完成所有必要的分析和处理,并将结果写回集群并完成,”博伦说。Spark的批处理速度比Mapreduce快近10倍,内存中的数据分析速度快近100倍。如果需要处理的数据和结果大多是静态的,你有耐心等待批处理,Mapreduce的处理方法是完全可以接受的。但是,如果您需要对流数据进行分析,比如工厂传感器收集的数据,或者您的应用程序需要多个数据处理,您可能应该使用Spark进行处理。大多数机器学习算法都需要多数据处理。此外,Spark的应用场景通常包括实时营销活动、在线产品推荐、网络安全分析、机器日记监控等。灾难恢复的方式各不相同,但都很好。因为Hadoop在磁盘上写下每次处理后的数据,所以它自然可以有弹性地处理系统错误。Spark存储在分布在数据集群中的数据对象称为弹性分布式数据集(RDD:ResilientDistributedDataset)中。Borne指出:“这些数据对象可以放在内存或磁盘上,因此RDD也可以提供完成的灾难恢复功能。”。
以上就是关于Hadoop和Apache Spark,它们究竟有什么异同?的相关介绍,更多Hadoop和Apache Spark,它们究竟有什么异同?相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对Hadoop和Apache Spark,它们究竟有什么异同?有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一