首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Hadoop MapReduce会在迭代算法的每次迭代中执行磁盘读写?

Hadoop MapReduce在迭代算法的每次迭代中执行磁盘读写的原因是为了实现数据的持久化和容错性。

迭代算法通常需要多次迭代处理大规模数据集,而Hadoop MapReduce是一种分布式计算框架,它将数据划分为多个块并分发到不同的计算节点上进行并行处理。在每次迭代中,MapReduce需要将数据从磁盘读取到内存中进行计算,并将计算结果写回磁盘以供下一次迭代使用。

执行磁盘读写的主要目的是为了数据的持久化。由于迭代算法可能需要多次迭代处理数据,将数据写入磁盘可以确保数据在迭代过程中不会丢失。同时,将计算结果写回磁盘也可以避免内存溢出的问题,因为大规模数据集可能无法完全加载到内存中进行计算。

此外,执行磁盘读写还可以提供容错性。在分布式计算环境中,计算节点可能会发生故障或网络中断等问题,导致计算中断。通过将数据写入磁盘,即使某个计算节点发生故障,数据仍然可以从磁盘中恢复,并在其他可用节点上继续进行计算,从而保证了计算的可靠性和容错性。

总结起来,Hadoop MapReduce在迭代算法的每次迭代中执行磁盘读写是为了实现数据的持久化和容错性,确保大规模数据集的处理过程中数据不丢失,并能够在计算节点故障时进行恢复和继续计算。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

大数据入门与实战-Spark上手

Spark主要特性是其内存集群计算,可以提高应用程序处理速度。 Spark旨在涵盖广泛工作负载,如批处理应用程序,迭代算法,交互式查询和流式处理。...关于存储系统,大多数Hadoop应用程序,他们花费超过90%时间进行HDFS读写操作。 2. 3 MapReduce迭代操作 在多阶段应用程序跨多个计算重用中间结果。...下图说明了在MapReduce执行迭代操作时当前框架工作原理。由于数据复制,磁盘I / O和序列化,这会导致大量开销,这会使系统变慢。 ?...2. 6 Spark RDD迭代操作 下面给出插图显示了Spark RDD迭代操作。它将中间结果存储在分布式存储器而不是稳定存储(磁盘,从而使系统更快。...如果对同一组数据重复运行不同查询,则可以将此特定数据保存在内存以获得更好执行时间。 ? Spark RDD交互操作 默认情况下,每次对其执行操作时,都可以重新计算每个转换后RDD。

1K20
  • Spark专题系列(一):Spark 概述

    从一开始设计核心就是迭代算法设计和交互式查询,同时还支持内存式存储和高效容错机制。...无法充分利用内存 Map和Reduce均需要排序 不适合迭代计算,在处理迭代式计算时,MapReduce是通过多个Map和Reduce作业组合来处理,对于磁盘IO消耗比较大 3 :计算框架多样化...  提供了丰富API,支持Java,Scala,Python和R 四种语言   代码量比MapReduce少2~5倍 与Hadoop集成   读写HDFS/HBase   与YARN集成 五 :MapReduce...,转换已有RDD以及调用RDD操作进行求值,Spark会自动将RDD数据分发到集群上,并将操作并行化执行。...是弹性 :数据集可以存在磁盘里,也可以存在内存,通过磁盘和内存之间可以进行置换 RDD基础特性: 分布在集群只读对象集合(由多个partition构成) 可以存储在磁盘或内存(多种存储级别)

    60430

    超越传统数据仓库

    它将SQL语句转化成 MapReduce Job,然后在 Hadoop执行,把执行结果最终反映给用户。...HQL 表达能力有限:迭代算法无法表达。...Hadoop MapReduce 由于其设计初衷并不是为了满足循环迭代式数据流处理,因此在多 并行运行数据可复用场景(如:机器学习、图挖掘算法、交互式数据挖掘算法)存 在诸多计算效率等问题。...它核心技术是弹性分布式数据集(Resilient Distributed Datasets),提供了比 MapReduce 丰富模型,可以快速在内存对数据集进行多次迭代,来支持复杂数据挖掘算法和图形计算算法...Spark只有在shuffle时候将数据写入磁盘,而Hadoop多个MR作业之间数据交互都要依赖于磁盘交互。

    57330

    spark与hadoop关联和区别,以及spark为什么那么快

    1,Spark是基于内存计算,而Hadoop是基于磁盘计算;Spark是一种内存计算技术。所谓内存计算技术也就是缓存技术,把数据放到缓存,减少cpu磁盘消耗。...Hadoop每次shuffle操作后,必须写到磁盘,而Spark在shuffle后不一定落盘,可以cache到内存,以便迭代时使用。...如果操作复杂,很多shufle操作,那么Hadoop读写IO时间会大大增加。多个任务之间操作也就是shuffle过程,因为要把不同task相同信息集合到一起,这样内存速度要明显大于磁盘了。...2、JVM优化 Hadoop每次MapReduce操作,启动一个Task便会启动一次JVM,基于进程操作。...而Spark每次MapReduce操作是基于线程,只在启动Executor是启动一次JVM,内存Task操作是在线程复用

    40510

    一步一步学习大数据:Hadoop 生态系统与场景

    MapReduce计算框架是基于磁盘离线计算 模型,新应用要求支持内存计算、流式计算、迭代式计算等多种计算框架。...数据库更新 Hive是不支持更新,一般是一次写入多次读写执行SQL延迟 Hive延迟相对较高,因为每次执行HQL需要解析成MapReduce。...Spark首先将数据导入Spark集群,然后再通过基于内存管理方式对数据进行快速扫描 ,通过迭代算法实现全局I/O操作最小化,达到提升整体处理性能目的,这与Hadoop从“计算”找“数据”实现思路是类似的...消除单块磁盘读写过热情况。 然而在Hadoop系统,当Raid0一块磁盘数据出现问题(或者读写变得很慢时候)时,你需要重新格式化整个Raid,并且数据需要重新恢复到DataNode。...RAID 1是磁盘阵列单位成本最高,但提供了很高数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘读写,而不需要重组失效数据。

    44700

    Spark:超越Hadoop MapReduce

    二者主要不同点是,Spark 在集群内存中保存数据,而 Hadoop 在集群磁盘存储数据。...但是对于一些如机器学习算法迭代计算算 法,用这种 MapReduce 范式就很痛苦,这也是选择使用 Spark 原因。...使用 Hadoop 的话,就意味着要等待重新从磁盘中加载数据,再次处理数据。我们不得不执行一 组相同计算作为随后分析前提,这不符合常理。...在 Hadoop 实现这 种算法,一般需要一系列加载数据 MapReduce 任务,这些 MapReduce 任务要在 每一个迭代过程重复运行。...Spark 关键好处在于交互式查询和迭代处理过程在内存缓存 RDD。缓存 起来 RDD 可以避免每次重新处理父 RDD 链,而只需要直接返回父 RDD 计算后 缓存结果。

    51320

    Spark 与 Hadoop 学习笔记 介绍及对比

    如果一个文件少于Block大小,那么实际占用空间为其文件大小 基本读写单位,类似于磁盘页,每次都是读写一个块 每个块都会被复制到多台机器,默认复制3份 NameNode 存储文件metadata...Spark主要特性是它内存中集群计算,从而不再需要读写HDFS,提高了应用程序处理速度,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代map reduce算法。...Spark旨在涵盖各种工作负载,如批处理应用程序,迭代算法,交互式查询和流式处理。除了在相应系统中支持所有这些工作负载之外,它还减少了维护单独工具管理负担。...二是Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,当需要多轮迭代计算时,可以将中间结果存储到这个存储模块里,下次需要时,就可以直接读该存储模块里数据,而不需要读写到...Hadoop Spark 对比 Spark中间数据放到内存,对于迭代运算效率更高,API中提供了大量RDD操作如join,groupby等,而且通过DAG图可以实现良好容错 Spark更适合于迭代运算比较多

    1.2K31

    spark浅谈

    hadoop机器资源管理和计算管理都是 mapreduce进程管理,就是执行任务和资源都是mapduce一个在管理, v2独立出 yarn才解决这个问题 mapreduce问题, 还是不能解决。...map和reduce都是并行hadoop mapreduce是基于 文件,相当于以数据为中心。 大量磁盘网络IO。 一个mapreduce只能计算一个结果,不能迭代计算。...进行迭代计算。 数据在内存, 上一步计算结果,可以在下一步进行使用。...另外一个原因: spark开发更容易,hadoopmapreduce很麻烦,每次都要有 map,reuduce, driver三个类。...Spark不同于MapReduce是,SparkJob中间输出结果可以保存在内存,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代MapReduce算法

    73330

    谈谈spark和hadoop差异

    反观Spark,它会在内存以接近“实时”时间完成所有的数据分析:“从集群读取数据,完成所有必须分析处理,将结果写回集群,完成,” Born说道。...因为Hadoop每次处理后数据都写入到磁盘上,所以其天生就能很有弹性对系统错误进行处理。...Spark是UC Berkeley AMP lab所开源Hadoop MapReduce通用并行计算框架,Spark基于map reduce算法实现分布式计算,拥有Hadoop MapReduce...所具有的优点;但不同于MapReduce是Job中间输出结果可以保存在内存,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代map reduce算法。...磁盘空间相对便宜,由于Spark不使用磁盘输入/输入用于处理,已使用磁盘空间可以用于SAN或NAS。 容错上:Spark使用弹性分布式数据集(RDD),它们是容错集合,里面的数据元素可执行并行操作。

    1.2K30

    Spark 在大数据地位 - 中级教程

    Hadoop MapReduce快上百倍,基于磁盘执行速度也能快十倍; 容易使用:Spark支持使用Scala、Java、Python和R语言进行编程,简洁API设计有助于用户轻松构建并行程序,并且可以通过...每次执行时都需要从磁盘读取数据,并且在计算完成后需要将中间结果写入到磁盘,IO开销较大; 延迟高。...,中间结果直接放到内存,带来了更高迭代运算效率; Spark基于DAG任务调度执行机制,要优于MapReduce迭代执行机制。...但Spark并不能完全替代Hadoop,主要用于替代HadoopMapReduce计算模型。...Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,当需要多轮迭代计算时,可以将中间结果存储到这个存储模块里,下次需要时,就可以直接读该存储模块里数据,而不需要读写

    1.1K40

    EMR(弹性MapReduce)入门之计算引擎Spark、Tez、MapReduce区别(八)

    这个库包含可扩展学习算法,比如分类、回归等需要对大量数据集进行迭代操作。 GraphX:控制图、并行图操作和计算一组算法和工具集合。...属性控制),会在本地文件系统创建一个溢出文件,将该缓冲区数据写入这个文件。...其实不管在map端还是reduce端,MapReduce都是反复地执行排序,合并操作,现在终于明白了有些人为什么会说:排序是hadoop灵魂。...Spark:Spark是UC Berkeley AMP lab所开源Hadoop MapReduce通用并行计算框架,Spark基于map reduce算法实现分布式计算,拥有Hadoop MapReduce...所具有的优点;但不同于MapReduce是Job中间输出和结果可以保存在内存,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代map reduce算法

    2.5K00

    五分钟零基础介绍 Spark

    Hadoop job 进行了多次磁盘读写,比如写入机器本地磁盘,或是写入分布式文件系统(这个过程包含磁盘读写以及网络传输)。...考虑到磁盘读取比内存读取慢了几个数量级,所以像 Hadoop 这样高度依赖磁盘读写架构就一定会有性能瓶颈。...在实际应用,我们通常需要设计复杂算法处理海量数据,比如之前提过 Google crawling indexing ranking, 显然不是一个 Hadoop job 可以完成。...在大数据场景,很多计算都有循环往复特点,像 Spark 这样允许在内存缓存输入输出,上一个 job 结果马上可以被下一个使用,性能自然要比 Hadoop MapReduce 好得多。...如此强大,如此开放,基于 Spark 操作,应有尽有。 Hadoop MapReduce 为什么不使用内存存储?选择依赖 HDFS,岂不给了后来者据上机会? 历史原因。

    61440

    Spark框架深度理解一:开发缘由及优缺点

    但是我还是讲一下这两者区别:我们知道计算机是利用CPU进行数据运算,但CPU只能对内存数据进行运算,而对于磁盘数据是不能运算。...如果要运算磁盘数据,必须先把磁盘数据读入内存,CPU才能进行运算。...我们可以用logistic算法Logistic模型原理详解分别用Hadoop MapReduce和Spark跑一边,logistic需要不停迭代梯度算出最优参数,因此迭代了相当多次。...对比:一般情况下,对于迭代次数较多应用程序,Spark程序在内存运行速度是Hadoop MapReduce运行速度100多倍,在磁盘运行速度是Hadoop MapReduce运行速度10多倍...Spark中间数据存放于内存,有更高迭代运算效率,而Hadoop每次迭代中间数据存放HDFS,设计硬盘读写,明显降低了运算效率。2.易用Spark支持多语言。

    53421

    每周学点大数据 | No.70 适于迭代并行计算平台——Spark初探

    No.70 适于迭代并行计算平台——Spark初探 Mr. 王 :在初步了解了并行平台 Hadoop 使用之后,我们再来尝试使用一个超越MapReduce 并行平台——Spark。...Spark 由于它“DAG 处理引擎”和“in-memory”计算技术,号称在内存运行可以比Hadoop 快 100 倍,即使在磁盘,也可以达到 10 倍处理速度。...不过,如果这个过程要进行多个轮次,比如做图算法、数据挖掘算法等,那么迭代几十次甚至上百次都是非常正常。...在这种情况下,数据就会被频繁地从 HDFS 上取出,这个过程相当于磁盘读写磁盘 ;也会被频繁地存储到 HDFS 上,这个过程相当于写磁盘。...即使 MapReduce 过程进行得再快,或者MapReduce 执行操作再简单,也会被不断磁盘 IO 拖慢平均运行速度,导致处理过程平均效率大大下降。

    65560

    Spark MLlib 算法系列之 LR

    Spark MLlib 介绍 Spark之所以在机器学习方面具有得天独厚优势,有以下几点原因: (1)机器学习算法一般都有很多个步骤迭代计算过程,机器学习计算需要在多次迭代后获得足够小误差或者足够收敛才会停止...,迭代时如果使用 Hadoop MapReduce 计算框架,每次计算都要读/写磁盘以及任务启动等工作,这回导致非常大 I/O 和 CPU 消耗。...而 Spark 基于内存计算模型天生就擅长迭代计算,多个步骤计算直接在内存完成,只有在必要时才会操作磁盘和网络,所以说 Spark 正是机器学习理想平台。...(2)从通信角度讲,如果使用 Hadoop MapReduce 计算框架,JobTracker 和 TaskTracker 之间由于是通过 heartbeat 方式来进行通信和传递数据,会导致非常慢执行速度...Spark 设计初衷就是为了支持一些迭代 Job, 这正好符合很多机器学习算法特点。

    1.4K20

    腾讯大数据之计算新贵Spark

    IO开销 使用多线程池模型来减少task启动开稍,shuffle过程避免不必要sort操作以及减少磁盘IO操作 广泛数据集操作类型 MapReduce由于其设计上约束只适合处理离线计算,...Spark由于其可伸缩、基于内存计算等特点,且可以直接读写Hadoop上任何格式数据,成为满足业务需求最佳候选者。...淘宝技术团队使用了Spark来解决多次迭代机器学习算法、高计算复杂度算法等。...与Hive相比,Shark特性如下: 1.以在线服务方式执行任务,避免任务进程启动和销毁开稍,通常MapReduce每个任务都是启动和关闭进程方式来运行,而在Shark,Server...3.对于性能要求更高表,提供分布式Cache系统将表数据事先Cache至内存,后续查询将直接访问内存数据,不再需要磁盘开稍。

    1.1K90

    Spark MLlib 算法系列之 FM

    Spark MLlib 介绍 Spark之所以在机器学习方面具有得天独厚优势,有以下几点原因: (1)机器学习算法一般都有很多个步骤迭代计算过程,机器学习计算需要在多次迭代后获得足够小误差或者足够收敛才会停止...,迭代时如果使用 Hadoop MapReduce 计算框架,每次计算都要读/写磁盘以及任务启动等工作,这回导致非常大 I/O 和 CPU 消耗。...而 Spark 基于内存计算模型天生就擅长迭代计算,多个步骤计算直接在内存完成,只有在必要时才会操作磁盘和网络,所以说 Spark 正是机器学习理想平台。...(2)从通信角度讲,如果使用 Hadoop MapReduce 计算框架,JobTracker 和 TaskTracker 之间由于是通过 heartbeat 方式来进行通信和传递数据,会导致非常慢执行速度...Spark 设计初衷就是为了支持一些迭代 Job,这正好符合很多机器学习算法特点。

    4.6K20

    重要 | Spark和MapReduce对比

    从上图可以看出Spark运行速度明显比Hadoop(其实是跟MapReduce计算引擎对比)快上百倍!...这张图是分别使用Spark和Hadoop运行逻辑回归机器学习算法运行时间比较,那么能代表Spark运行任何类型任务在相同条件下都能得到这个对比结果吗?...很显然是不对,对于这个对比我们要知其然更要知其所以然。 首先,大多数机器学习算法核心是什么?就是对同一份数据在训练模型时,进行不断迭代、调参然后形成一个相对优模型。...相对于MapReduce,我们为什么选择Spark,笔者做了如下总结: Spark 1.集流批处理、交互式查询、机器学习及图计算等于一体 2.基于内存迭代式计算,适合低延迟、迭代运算类型作业 3.可以通过缓存共享...最后改用Hive原生引擎MapReduce执行,在资源配置相同情况下,任务能够稳定运行,而且速度并没有想象那么慢。

    54310
    领券