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

    浏览量

    15959
  • SPARK
    +关注

    关注

    1

    文章

    105

    浏览量

    19878
收藏 人收藏

    评论

    相关推荐

    Pytorch深度学习训练的方法

    掌握这 17 种方法,用最省力的方式,加速你的 Pytorch 深度学习训练。
    的头像 发表于 10-28 14:05 143次阅读
    Pytorch深度<b class='flag-5'>学习</b>训练的<b class='flag-5'>方法</b>

    基于Kepware的Hadoop大数据应用构建-提升数据价值利用效能

    背景 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,它允许用户在不需要深入了解分布式底层细节的情况下,开发分布式程序。Hadoop充分利用集群的威力进行高速运算和存储,特别适用于
    的头像 发表于 10-08 15:12 126次阅读
    基于Kepware的<b class='flag-5'>Hadoop</b>大数据应用构建-提升数据价值利用效能

    spark为什么比mapreduce快?

    spark为什么比mapreduce快? 首先澄清几个误区: 1:两者都是基于内存计算的,任何计算框架都肯定是基于内存的,所以网上说的spark是基于内存计算所以快,显然是错误的 2;DAG计算模型
    的头像 发表于 09-06 09:45 220次阅读

    深度学习中的时间序列分类方法

    的发展,基于深度学习的TSC方法逐渐展现出其强大的自动特征提取和分类能力。本文将从多个角度对深度学习在时间序列分类中的应用进行综述,探讨常用的深度学习模型及其改进
    的头像 发表于 07-09 15:54 707次阅读

    spark运行的基本流程

    前言: 由于最近对spark的运行流程非常感兴趣,所以阅读了《Spark大数据处理:技术、应用与性能优化》一书。通过这本书的学习,了解了spark的核心技术、实际应用场景以及性能优化的
    的头像 发表于 07-02 10:31 365次阅读
    <b class='flag-5'>spark</b>运行的基本流程

    Spark基于DPU的Native引擎算子卸载方案

    Spark Streaming)、机器学习Spark MLlib)和图计算(GraphX)。Spark 使用内存加载保存数据并进行迭代计算,减少磁盘溢写,同时支持 Java、Sca
    的头像 发表于 06-28 17:12 502次阅读
    <b class='flag-5'>Spark</b>基于DPU的Native引擎算子卸载方案

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

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

    RDMA技术在Apache Spark中的应用

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

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

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

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

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

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

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

    请问初学者要怎么快速掌握FPGA的学习方法?

    对于初学者 FPGA的编程语言是什么? FPGA芯片的基础结构也不了解. FPGA开发工具的名称和使用方法都不知道. 要学的很多啊,请问有什么自学的学习方法么?
    发表于 01-02 23:01

    快速测量热敏电阻好坏的方法

    快速测量热敏电阻好坏的方法
    的头像 发表于 12-08 17:18 1600次阅读
    <b class='flag-5'>快速</b>测量热敏电阻好坏的<b class='flag-5'>方法</b>

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

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

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

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