0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

快速学习Spark和Hadoop的架构的方法

IT家园 2019-07-18 09:42 次阅读

Spark和Hadoop的架构区别是什么,什么是spark,什么是Hadoop,怎么样学习这些知识点?

总的来说,Spark采用更先进的架构,使得灵活性、易用性、性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高。我总结,具体表现在如下几个方面。

Spark和Hadoop的架构有什么不同之处

Q:Spark和Hadoop的架构区别

A:

Hadoop:MapRedcue由Map和Reduce两个阶段,并通过shuffle将两个阶段连接起来的。但是套用MapReduce模型解决问题,不得不将问题分解为若干个有依赖关系的子问题,每个子问题对应一个MapReduce作业,最终所有这些作业形成一个DAG。

Spark:是通用的DAG框架,可以将多个有依赖关系的作业转换为一个大的DAG。核心思想是将Map和Reduce两个操作进一步拆分为多个元操作,这些元操作可以灵活组合,产生新的操作,并经过一些控制程序组装后形成一个大的DAG作业。

Q:Spark和Hadoop的中间计算结果处理区别

A:

Hadoop:在DAG中,由于有多个MapReduce作业组成,每个作业都会从HDFS上读取一次数据和写一次数据(默认写三份),即使这些MapReduce作业产生的数据是中间数据也需要写HDFS。这种表达作业依赖关系的方式比较低效,会浪费大量不必要的磁盘和网络IO,根本原因是作业之间产生的数据不是直接流动的,而是借助HDFS作为共享数据存储系统。

Spark:在Spark中,使用内存(内存不够使用本地磁盘)替代了使用HDFS存储中间结果。对于迭代运算效率更高。

Q:Spark和Hadoop的操作模型区别

A:

Hadoop:只提供了Map和Reduce两种操作所有的作业都得转换成Map和Reduce的操作。

Spark:提供很多种的数据集操作类型比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多种操作类型,还提供actions操作包括Count,collect, reduce, lookup, save等多种。这些多种多样的数据集操作类型,给开发上层应用的用户提供了方便。

Q:spark中的RDD是什么,有哪些特性?

A:

A list of partitions:一个分区列表,RDD中的数据都存储在一个分区列表中

A function for computing each split:作用在每一个分区中的函数

A list of dependencies on other RDDs:一个RDD依赖于其他多个RDD,这个点很重要,RDD的容错机制就是依据这个特性而来的

Optionally,a Partitioner for key-value RDDs(eg:to say that the RDD is hash-partitioned):可选的,针对于kv类型的RDD才有这个特性,作用是决定了数据的来源以及数据处理后的去向

可选项,数据本地性,数据位置最优

Q:概述一下spark中的常用算子区别(map,mapPartitions,foreach,foreachPatition)

A:map:用于遍历RDD,将函数应用于每一个元素,返回新的RDD(transformation算子)

foreach:用于遍历RDD,将函数应用于每一个元素,无返回值(action算子)

mapPatitions:用于遍历操作RDD中的每一个分区,返回生成一个新的RDD(transformation算子)

foreachPatition:用于遍历操作RDD中的每一个分区,无返回值(action算子)

总结:一般使用mapPatitions和foreachPatition算子比map和foreach更加高效,推荐使用。如果你想要学好编程技能,请留意内蒙达内官网,学习技能快,我们只选对的机构!



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Hadoop
    +关注

    关注

    1

    文章

    90

    浏览量

    15825
  • SPARK
    +关注

    关注

    1

    文章

    99

    浏览量

    19728
收藏 人收藏

    评论

    相关推荐

    Spark基于DPU Snappy压缩算法的异构加速方案

    一、总体介绍 1.1 背景介绍 Apache Spark是专为大规模数据计算而设计的快速通用的计算引擎,是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些不同之处
    的头像 发表于 03-26 17:06 210次阅读
    <b class='flag-5'>Spark</b>基于DPU Snappy压缩算法的异构加速方案

    RDMA技术在Apache Spark中的应用

    、电信、零售、医疗保健还是物联网,Spark的应用几乎遍及所有需要处理海量数据和复杂计算的领域。它的快速、易用和通用性,使得数据科学家和工程师能够轻松实现数据挖掘、数据分析、实时处理等任务。 然而,在Spark的灿烂光环背后,一
    的头像 发表于 03-25 18:13 1070次阅读
    RDMA技术在Apache <b class='flag-5'>Spark</b>中的应用

    基于DPU和HADOS-RACE加速Spark 3.x

    背景简介 Apache Spark(下文简称Spark)是一种开源集群计算引擎,支持批/流计算、SQL分析、机器学习、图计算等计算范式,以其强大的容错能力、可扩展性、函数式API、多语言支持(SQL
    的头像 发表于 03-25 18:12 929次阅读
    基于DPU和HADOS-RACE加速<b class='flag-5'>Spark</b> 3.x

    Hadoop是什么?其核心由两大部分组成,分别是什么?

    了分布式存储和计算的方式,能够快速有效地处理大量数据,并具备良好的扩展性和容错性。 Hadoop的核心由两大部分组成,分别是Hadoop分布式文件系统(Hadoop Distribut
    的头像 发表于 02-05 10:52 476次阅读

    华为企业架构设计方法及实例

    企业架构是一项非常复杂的系统性工程。公司在充分继承原有架构方法基础上,博采众家之长,融合基于职能的业务能力分析与基于价值的端到端流程分析,将”传统架构设计(TOGAF)”与“领域驱动(
    发表于 01-30 09:40 279次阅读
    华为企业<b class='flag-5'>架构</b>设计<b class='flag-5'>方法</b>及实例

    TVM编译器的整体架构和基本方法

    有将近两个月没有学习一些新东西,更新一下博客了。一直在忙公司的一个项目,是做一款支持LSTM和RNN的通用架构加速IP。自己恰好负责指令编译工作,虽然开始的指令比较粗糙,没有一套完整的编译器架构
    的头像 发表于 11-30 09:36 874次阅读
    TVM编译器的整体<b class='flag-5'>架构</b>和基本<b class='flag-5'>方法</b>

    Arm微架构学习—开启Armv9时代

    在上一篇文章“从A76到A78——在变化中学习Arm微架构”中,我们了解了Arm处理器微架构的基本组成,介绍了Armv8架构最后几代经典处理器架构
    的头像 发表于 11-27 16:46 603次阅读
    Arm微<b class='flag-5'>架构</b><b class='flag-5'>学习</b>—开启Armv9时代

    变频器架构组成和设计方法

    电子发烧友网站提供《变频器架构组成和设计方法.doc》资料免费下载
    发表于 11-15 10:58 2次下载
    变频器<b class='flag-5'>架构</b>组成和设计<b class='flag-5'>方法</b>

    射频接收机的架构学习

    射频接收机的架构学习
    的头像 发表于 10-30 16:21 265次阅读
    射频接收机的<b class='flag-5'>架构</b><b class='flag-5'>学习</b>

    NVIDIA 携手腾讯开发和优化 Spark UCX 实现性能跃升

    腾讯网络平台部与数据平台部,联合 NVIDIA 合作开发和优化 Spark UCX,最终实现 Spark Shuffle 稳定加速 15% - 20%,平均降低现网 Spark 任务
    的头像 发表于 08-25 20:50 422次阅读
    NVIDIA 携手腾讯开发和优化 <b class='flag-5'>Spark</b> UCX 实现性能跃升

    STM32存储器和总线架构学习

    学习一个MCU,首先要学习这个芯片的架构,比如这个芯片是32bit 的RSIC V还是哈佛架构,对于STM32F4,它采用ARMv7-ME架构
    发表于 07-21 14:14 471次阅读
    STM32存储器和总线<b class='flag-5'>架构</b><b class='flag-5'>学习</b>

    基于深度学习的点云分割的方法介绍

    基于视图和投影的方法、基于体素的方法、无序点云的方法、有序点云的方法以及无监督学习方法,并简要
    发表于 07-20 15:23 0次下载

    Spark ML算法提供GPU加速度

    新的 GPU 库降低了 Apache Spark ML 的计算成本
    的头像 发表于 07-05 16:30 577次阅读
    为<b class='flag-5'>Spark</b> ML算法提供GPU加速度

    联合学习在传统机器学习方法中的应用

    联合学习在传统机器学习方法中的应用
    的头像 发表于 07-05 16:30 542次阅读
    联合<b class='flag-5'>学习</b>在传统机器<b class='flag-5'>学习方法</b>中的应用

    Spark 3.4用于分布式模型训练和大规模模型推理

    使用 Spark 3.4 简化分布式深度学习
    的头像 发表于 07-05 16:30 778次阅读
    <b class='flag-5'>Spark</b> 3.4用于分布式模型训练和大规模模型推理