Big Data】hadoop和spark有啥关系

2020-04-01 21:16发布

3条回答
记忆里的东关
2楼 · 2020-04-01 21:54

hadoop是第一代大数据技术平台 spark是第二代大数据平台

hadoop主要用于离线数据分析 spark主要用于实时数据分析


nove
3楼 · 2020-04-02 09:23

hadoop是基础,spark解决了hadoop耦合度高,基于磁盘的计算速度慢的问题(spark诞生很早)。可是后来hadoop生态圈出现了yarn,解决了耦合度高的问题,且计算速度满足当时的需求,故spark直到近几年才发展起来。两者作为同一类型的工具,各有所长,相互借鉴,共同发展的关系

IT学习助手 - qq:2676427015
4楼 · 2022-04-13 08:38

一、实现原理的比较

(1)Hadoop和Spark都是并行计算,两者都是用MR模型进行计算

(2)Hadoop一个作业称为一个Job,Job里面分为Map Task和Reduce Task阶段,每个Task都在自己的进程中运行,当Task结束时,进程也会随之结束;

(3)Spark用户提交的任务称为application,一个application对应一个SparkContext,app中存在多个job,每触发一次action操作就会产生一个job。这些job可以并行或串行执行,每个job中有多个stage,stage是shuffle过程中DAGScheduler通过RDD之间的依赖关系划分job而来的,每个stage里面有多个task,组成taskset,由TaskScheduler分发到各个executor中执行;executor的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存进行计算。

(4)Hadoop和spark的工作流程如图1所示:

mapreduce :读 – 处理 - 写磁盘 – 读 - 处理 - 写

Spark:读 - 处理 - 处理 --(需要的时候)写磁盘 - 写

二、Spark和Hadoop有哪些异同点?

(1)Spark对标于Hadoop中的计算模块MR,但是速度和效率比MR要快得多;

(2)Spark没有提供文件管理系统,所以,它必须和其他的分布式文件系统进行集成才能运作,它只是一个计算分析框架,专门用来对分布式存储的数据进行计算处理,它本身并不能存储数据;

(3)Spark可以使用Hadoop的HDFS或者其他云数据平台进行数据存储,但是一般使用HDFS;

(4)Spark可以使用基于HDFS的HBase数据库,也可以使用HDFS的数据文件,还可以通过jdbc连接使用Mysql数据库数据;Spark可以对数据库数据进行修改删除,而HDFS只能对数据进行追加和全表删除;

(5)Spark数据处理速度秒杀Hadoop中MR;

(6)Spark处理数据的设计模式与MR不一样,Hadoop是从HDFS读取数据,通过MR将中间结果写入HDFS;然后再重新从HDFS读取数据进行MR,再刷写到HDFS,这个过程涉及多次落盘操作,多次磁盘IO,效率并不高;而Spark的设计模式是读取集群中的数据后,在内存中存储和运算,直到全部运算完毕后,再存储到集群中;

(7)Spark是由于Hadoop中MR效率低下而产生的高效率快速计算引擎,批处理速度比MR快近10倍,内存中的数据分析速度比Hadoop快近100倍(源自官网描述);

(8)Spark中RDD一般存放在内存中,如果内存不够存放数据,会同时使用磁盘存储数据;通过RDD之间的血缘连接、数据存入内存中切断血缘关系等机制,可以实现灾难恢复,当数据丢失时可以恢复数据;这一点与Hadoop类似,Hadoop基于磁盘读写,天生数据具备可恢复性;

(9)Spark引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟,对7的补充;

(10)Spark中通过DAG图可以实现良好的容错。

三、Spark和Hadoop的联系

Hadoop提供分布式数据存储功能HDFS,还提供了用于数据处理的MapReduce。 MapReduce是可以不依靠spark数据的处理的。当然spark也可以不依靠HDFS进行运作,它可以依靠其它的分布式文件系统。但是两者完全可以结合在一起,hadoop提供分布式 集群和分布式 文件系统,spark可以依附在hadoop的HDFS代替MapReduce弥补MapReduce计算能力不足的问题。

总结

(1)首先,Hadoop MapReduce和Apache Spark两者都是大数据计算框架,但是各自存在的目的不尽相同。

(2)Hadoop实质上更多是一个分布式数据基础设施: 它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着您不需要购买和维护昂贵的服务器硬件。同时,Hadoop还会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。不过对于需要多路计算和算法的用例来说,并非十分高效。数据处理流程中的每一步都需要一个Map阶段和一个Reduce阶段,而且如果要利用这一解决方案,需要将所有用例都转换成MapReduce模式。在下一步开始之前,上一步的作业输出数据必须要存储到分布式文件系统中。因此,复制和磁盘存储会导致这种方式速度变慢。另外Hadoop解决方案中通常会包含难以安装和管理的集群。而且为了处理不同的大数据用例,还需要集成多种不同的工具(如用于机器学习的Mahout和流数据处理的Storm)。

(3)如果想要完成比较复杂的工作,就必须将一系列的MapReduce作业串联起来然后顺序执行这些作业。每一个作业都是高时延的,而且只有在前一个作业完成之后下一个作业才能开始启动。

(4)Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它并不会进行分布式数据的存储。Spark则允许程序开发者使用有向无环图(DAG)开发复杂的多步数据管道。而且还支持跨有向无环图的内存数据共享,以便不同的作业可以共同处理同一个数据。

(5)两者可合可分

Hadoop除了提供为大家所共识的HDFS分布式数据存储功能之外,还提供了叫做MapReduce的数据处理功能。所以这里我们完全可以抛开Spark,使用Hadoop自身的MapReduce来完成数据的处理。

相反,Spark也不是非要依附在Hadoop身上才能生存。但如上所述,毕竟它没有提供文件管理系统,所以,它必须和其他的分布式文件系统进行集成才能运作。这里我们可以选择Hadoop的HDFS,也可以选择其他的基于云的数据系统平台。

(6)但Spark默认来说还是被用在Hadoop上面的,毕竟,大家都认为它们的结合是最好的。Spark运行在现有的Hadoop分布式文件系统基础之上(HDFS)提供额外的增强功能。它支持将Spark应用部署到现存的Hadoop v1集群(with SIMR – Spark-Inside-MapReduce)或Hadoop v2 YARN集群甚至是Apache Mesos之中。

总之,我们应该将Spark看作是Hadoop MapReduce的一个替代品而不是Hadoop的替代品。其意图并非是替代Hadoop,而是为了提供一个管理不同的大数据用例和需求的全面且统一的解决方案。



相关问题推荐

  • 回答 2

    在互联网逐渐步入大数据时代后,不可避免的为企业及消费者行为带来一系列改变与重塑。其中最大的变化莫过于,消费者的一切行为在企业面前似乎都将是可视化的。随着大数据技术的深入研究与应用,企业的专注点日益聚焦于怎样利用大数据来为精准营销服务,进而深...

  • 回答 1

    这跟年限关系并不代表,主要看技术能力,工作10年技术不行,薪资一样相对较低,毕业一年技术很牛,工资也没有上限,技术可以的话,一线城市薪资能达到5位数

  • 回答 1

    在线上的hadoop集群运维过程中,hadoop 的balance工具通常用于平衡hadoop集群中各datanode中的文件块分布,以避免出现部分datanode磁盘占用率高的问题(这问题也很有可能导致该节点CPU使用率较其他服务器高)。可能的原因:突然磁盘使用率变高而文件块数并没...

  • 回答 1

    其实属于一个领域,先用大数据技术将数据进行采集、存储、计算,然后根据结果利用机器学习搞一些模型、算法进行预测,人工智能建立在这之上

  • 回答 1

      PageRank,即网页排名,又称网页级别、Google左側排名或佩奇排名。        是Google创始人拉里·佩奇和谢尔盖·布林于1997年构建早期的搜索系统原型时提出的链接分析算法,自从Google在商业上获得空前的成功后,该算法也成为其他搜索引擎和学术界十...

  • 回答 1

    是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合

  • 回答 3
    已采纳

    监督学习(supervised learning)从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入输出,也可以说是特征和目标。训练集中的目标是由人标注的。监督学习就是最常见的分类(注意和...

  • 回答 1

    分类:是已知类别时,对数据进行按标签进行划分到不同类别中,属于有监督的学习。聚类:是在没有标签的情况下,将相似的数据划分到一个类中,属于无监督的学习。

  • 回答 1

    其实这个是两个词的组合,可以拆分为TF和IDF。TF(Term Frequency,缩写为TF)也就是词频啦,即一个词在文中出现的次数,统计出来就是词频TF,显而易见,一个词在文章中出现很多次,那么这个词肯定有着很大的作用,但是我们自己实践的话,肯定会看到你统计出...

  • 回答 1

    余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫余弦相似性。  上图两个向量a,b的夹角很小可以说a向量和b向量有很高的的相似性,极...

  • 回答 1

    1)线性回归要求变量服从正态分布,logistic回归对变量分布没有要求。2)线性回归要求因变量是连续性数值变量,而logistic回归要求因变量是分类型变量。3)线性回归要求自变量和因变量呈线性关系,而logistic回归不要求自变量和因变量呈线性关系。4)logistic...

  • 回答 1

    传输过程中主要防止两种数据安全考核,一种是外界数据进来使用病毒进行入侵系统获取数据,二是数据向外传输过程中进行数据泄露,关键主要是防止病毒侵入以及传输端口和ip的私密保护,主要包含以下:敏感数据发现,对外接口分析,策略集中管控,事件追踪溯源,...

  • 回答 1

    如果自己懂得技术的话,只需要搭建集群就可以了,可以使用本地电脑做服务器,也可以租用服务器,这些硬件的费用根据配置计算的,如果不懂技术还需要考虑找人的成本。总的而言,是  技术人员成本  加  设备成本...

  • 回答 1

    最重要的是带宽,你问的是什么延迟,计算延迟还是什么,问题请问清楚,一部分延迟可以提高硬件配置来解决。

  • 回答 2

    理论上是不需要的,因为术业有专攻,大数据开发人员只需要将统计结果推送到指定位置,其他人员,比如javaee人员就可以将数据提取出来,推送到前端,再由前端开发人员将结果展示在页面。但是学习多多益善,所以多学习只有百利而无一害。...

  • 大数据Big Data 2020-05-15 10:03
    回答 1

    大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶...

没有解决我的问题,去提问