×

hadoop和spark关系 oop s

hadoop和spark关系(hadoop与spark的区别是什么)

admin admin 发表于2023-03-02 21:35:46 浏览45 评论0

抢沙发发表评论

本文目录

hadoop与spark的区别是什么

谢谢邀请!

请看下面这张图:

狭义的Hadoop 也就是最初的版本:只有HDFS Map Reduce

后续出现很多存储,计算,管理 框架。

如果说比较的话就 Hadoop Map Reduce 和 Spark 比较,因为他们都是大数据分析的计算框架。

Spark 有很多行组件,功能更强大,速度更快。

关注我了解更多大数据分析技能

Spark能代替Hadoop吗

根据现有的发展,目前spark还不能完全代替Hadoop。

我们知道Hadoop包含三个组件yarn,hdfs,MapReduce,分别对应解决三个方面的问题,资源调度(yarn),分布式存储(hdfs),分布式计算(mapreudce)。而spark只解决了分布式计算方面的问题,跟MapReduce需要频繁写磁盘不同,spark重复利用内存,大大提高了计算效率,在分布式计算方面spark大有取代MapReduce之势,而在资源调度,和分布式存储方面spark还无法撼动。

既然Spark比Hadoop性能好很多,Hadoop未来的发展方向是什么

你好,这两个大数据组件都接触了一段时间,非常荣幸来交流这个问题。

首先要明确Spark比Hadoop的性能好,我个人认为只是说Spark的运算性能要比MapReduce强百倍。

而Hadoop有三大组件

HDFS分布式文件系统

Yarn是一个通用资源调度平台

为程序提供运算资源(CPU、RAM等)

相当于一个分布式的操作系统平台

MapReduce

分布式运算框架,分map和reduce来处理数据

Spark程序经常也是运行在yarn上

Spark做离线处理经常也是处理hdfs的数据

Hadoop未来的发展

1.MapReduce的余热也就是运行hive

目前来看hive仍是SQL处理大数据的第一选择

2.HDFS仍是分布式文件系统的不二之选,为Hbase等提供支持

3.yarn作为通用的资源调度平台,以后的运算框架都还将依赖yarn

4.MapReduce必定会有性能和架构上的提升

总的来说Hadoop开启了大数据大门,奠定了大数据的基本运算模型,随着它的不断革新,必定还将大放异彩。

上述就是我对spark和hadoop的一点拙见,欢迎大家进行评论指教,也麻烦大家关注、点赞。

学习是人充实,祝大家出任CTO、迎娶白富美 !!!O(∩_∩)O

Spark和Hadoop对于大数据的关系

Hadoop生态

Apache™Hadoop®项目开发了用于可靠,可扩展的分布式计算的开源软件。

Apache Hadoop软件库是一个框架,该框架允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理。 它旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。 库本身不是设计用来依靠硬件来提供高可用性,而是设计为在应用程序层检测和处理故障,因此可以在计算机集群的顶部提供高可用性服务,而每台计算机都容易出现故障。

1、hadoop1.0时期架构

2、hadoop2.0时期架构

3、hdfs架构

Active Namenode

主 Master(只有一个),管理 HDFS 的名称空间,管理数据块映射信息;配置副本策略;处理客户端读写请求

Secondary NameNode

NameNode 的热备;定期合并 fsimage 和 fsedits,推送给 NameNode;当 Active NameNode 出现故障时,快速切换为新的 Active NameNode。

Datanode

Slave(有多个);存储实际的数据块;执行数据块读 / 写

Client

与 NameNode 交互,获取文件位置信息;与 DataNode 交互,读取或者写入数据;管理 HDFS、访问 HDFS。

4、MapReduce

源自于 Google 的 MapReduce 论文

发表于 2004 年 12 月

Hadoop MapReduce 是 Google MapReduce 克隆版

MapReduce特点

良好的扩展性

高容错性

适合 PB 级以上海量数据的离线处理

5、yarn架构

6、hadoop1.0与hadoop2.0比较图

7、Hive(基于MR的数据仓库)

由Facebook开源,最初用于海量结构化日志数据统计;ETL(Extraction-Transformation-Loading)工具构建在Hadoop之上的数据仓库;数据计算使用 MapReduce,数据存储使用HDFS

Hive 定义了一种类 SQL 查询语言——HQL

类似SQL,但不完全相同

通常用于进行离线数据处理(采用 MapReduce);可认为是一个 HQL→MR 的语言翻译器

8、Hbase(分布式数据库)

源自 Google 的 Bigtable 论文

发表于 2006 年 11 月

Hbase 是 Google Bigtable 克隆版

Spark

Apache Spark是用于大规模数据处理的统一分析引擎。 它提供Java,Scala,Python和R中的高级API,以及支持常规执行图的优化引擎。 它还支持丰富的高级工具集,包括用于SQL和结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图形处理的GraphX和用于增量计算和流处理的结构化流。

速度

运行工作负载的速度提高了100倍。

Apache Spark使用最新的DAG调度程序,查询优化器和物理执行引擎,为批处理数据和流数据提供了高性能。

使用方便

使用Java,Scala,Python,R和SQL快速编写应用程序。

Spark提供了80多个高级操作员,可轻松构建并行应用程序。 您可以从Scala,Python,R和SQL Shell交互使用它。

通用

结合使用SQL,流和复杂的分析。

Spark为包括SQL和DataFrames,用于机器学习的MLlib,GraphX和Spark Streaming在内的一堆库提供支持。 您可以在同一应用程序中无缝组合这些库。

无处不在

Spark可在Hadoop,Apache Mesos,Kubernetes,独立或云中运行。 它可以访问各种数据源。

您可以在EC2,Hadoop YARN,Mesos或Kubernetes上使用其独立集群模式运行Spark。 访问HDFS,Alluxio,Apache Cassandra,Apache HBase,Apache Hive和数百种其他数据源中的数据。

大数据里spark和hadoop的mr相比有哪些优势,能否用较通俗的语言解释一下

从以下六个方面来比较两者区别。

1、MR:抽象层次低,需要使用手工代码来完成程序编写,使用上难以上手;

Spark:Spark采用RDD计算模型,简单容易上手。

2、MR:只提供map和reduce两个操作,表达能力欠缺;

Spark:Spark采用更加丰富的算子模型,包括map、flatmap、groupbykey、reducebykey等;

3、MR:一个job只能包含map和reduce两个阶段,复杂的任务需要包含很多个job,这些job之间的管理以来需要开发者自己进行管理;

Spark:Spark中一个job可以包含多个转换操作,在调度时可以生成多个stage,而且如果多个map操作的分区不变,是可以放在同一个task里面去执行;

4、MR:中间结果存放在hdfs中;

Spark:Spark的中间结果一般存在内存中,只有当内存不够了,才会存入本地磁盘,而不是hdfs;

5、MR:只有等到所有的map task执行完毕后才能执行reduce task;

Spark:Spark中分区相同的转换构成流水线在一个task中执行,分区不同的需要进行shuffle操作,被划分成不同的stage需要等待前面的stage执行完才能执行。

6、MR:只适合batch批处理,时延高,对于交互式处理和实时处理支持不够;

Spark:Spark streaming可以将流拆成时间间隔的batch进行处理,实时计算。

在hadoop和spark之间如何取舍

其实这两个工具之间一般并不存在取舍关系。

业界一般会结合试用这两个工具。

hadoop基于集群存储和分析调度的工具包,大家常用的有hdfs,mapreduce,yarn,属于平台基础设施,主要负责海量数据存储和并行计算调度。

而spark是个大数据快速分析工具,一般实在hadoop基础上运行(虽然也可独立运行),通过hadoop的yarn调度,实现海量数据的流式处理。

另外,spark也包含一个机器学习的库mllib,用来进行机器学习。

hadoop和大数据的关系和spark的关系

大数据其实是一个比较大、比较广泛的概念,而Hadoop是大数据处理的一个功能比较完备的批量数据存储、计算和分析框架,spark可以理解为一个内存计算框架,现在很多主流大数据平台都是在Hadoop基础上进行优化和二次开发,spark一般会集成到Hadoop进行流式数据处理(spark streaming)

mesos、k8s和spark之间的联系和区别是什么

Mesos、K8s之间有关系,简单地说有竞争关系,都是用来进行容器编排的,是容器技术的关键组件。Mesos比K8s出道早,一度受到市场热捧,不过,K8s有Google撑腰很快就盖过了Mesos,而且战胜了Docker的自己Swarm,今天K8s已经是容器编排的事实标准了。

Spark是大数据领域的一款软件,最早是作为Hadoop的竞争对手出现,如今已经与Hadoop整合在一起了。它和Mesos、K8s没有直接关系。如果非要说有,就是都是开源软件。

学习spark和storm之前有必要学习hadoop吗

大数据学习路线:Java基础——大数据基础(Linux系统管理、Shell编程设计、Maven等)——hadoop——Strom——Spark——算法

一般,学习大数据部分的时间比学习Java的时间要短。大数据课程,包括大数据技术入门,海量数据高级分析语言,海量数据存储分布式存储,以及海量数据分析分布式计算等部分,Linux,Hadoop,Scala, HBase, Hive, Spark等专业课程。如果要完整的学习大数据的话,这些课程都是必不可少的。 加米谷大数据培训线下小班教学,6月大数据开发零基础班预报名中...

相关:大数据开发零基础需要学习什么内容?(1)Java、大数据基础

https://www.toutiao.com/i6684880291628057099/

spark真的要取代hadoop了么,还有阿里的flink未来会是一种趋势么

大家好,我是LakeShen

作为一个软件开发工程师,我从事的方向主要是大数据方向,结合我的工作经验,我个人认为,Spark不会完全取代Hadoop,Hadoop还有很多其他方面的大数据组件,这些组件是Spark所没有的,同时,Flink在未来的发展,会作为实时计算方面的一种发展趋势。下面来说一下我个人的看法:

Flink未来的发展

首先,Flink是什么?Flink一种流式处理的实时计算引擎,它消费的数据可以来自Kafka、MetaQ等消息中间件,旨在降低数据计算的延时,使得我们可以实时监控我们业务相关的指标信息。Flink 目前作为国内最火的一款实时计算引擎,国内有很多互联网大公司都使用Flink进行实时计算,阿里的Blink(Flink 阿里内部版本)、腾讯、今日头条、美团等。Flink 天然的状态管理,使得其能够应用于公司的各种有状态的实时计算。下面来看一下Flink Github上面的信息:

从上图可以看到,关注Flink的人数达到了9929位人数,同时,每天都有很多用户关注Flink。根据Apache 软件基金会2019年的财报,Flink持续活跃,其社区邮件列表在所有开源项目活跃度第一。这也意味着,Flink 目前在实时计算方面非常的火热。在加上阿里在Flink 1.9版本开源了很多 Flink SQL方面的特性,我相信,在未来,Flink在实时计算方面,是一种发展趋势。

Spark相对于Hadoop的优势

Spark本质也是一种大数据计算框架,它相对于Hadoop最重要的优势,我个人认为是Spark能够将中间计算的结果放在内存中,而Hadoop的中间结果只能放在磁盘上。Spark充分的利用的计算机内存的优势,在数据量非常大的情况下,访问计算机内存的速度肯定要比访问磁盘快的多。一个离线任务,使用Spark几分钟就能跑完,而使用Hadoop可能需要几十分钟。时间上面的延迟,业务同学是肯定不会容忍的。

同时,用户在开发Spark任务时,由于Spark 代码开发的便利性,用户几行代码就可以开发出Spark任务,但是Hadoop任务你需要编写Mapper类、Reducer类。这极大的增加了开发同学开发任务的复杂度。所以,我个人认为,在离线计算方面,Spark在未来必然会取代Hadoop。

Spark相对于Hadoop的不足

Hadoop主要由三方面构成,MR计算模型、Yarn资源管理框架、HDFS分布式文件存储。虽然Hadoop在离线计算方面相对于Spark较慢,但是其在资源管理和分布式文件存储方面做得非常完善,很多公司不会为了计算快而完全放弃Hadoop,Spark只是一款大数据计算框架,它没有自己的资源管理框架和存储。Spark的资源管理使用的是Hadoop Yarn,底层的文件存储,使用的Hadoop HDFS。Spark的优势只是其比Hadoop在离线计算方面速度快,但在其他方面,比如资源管理等,根本没有任何优势。

总结

所以,我个人认为,未来在离线计算方面,Spark必然会代替Hadoop作为很多大数据公司的首选。但是由于Hadoop其底层的资源管理框架Yarn和文件存储HDFS已经非常完善,所以互联网公司还会使用Hadoop,但会使用Spark来进行离线数据计算。同时,Flink未来在实时计算方面肯定是一种发展趋势,在加上国内阿里的大力推广和运营,我相信Flink以后发展会越来越好。

我是LakeShen,如果你觉得我的见解对你有帮助的话,其可以点个赞或者关注我吧,我会一直持续分享我在科技方面的见解,感谢。