首页IT科技分布式计算技术叫什么(《分布式技术原理与算法解析》学习笔记Day13)

分布式计算技术叫什么(《分布式技术原理与算法解析》学习笔记Day13)

时间2025-06-21 08:02:45分类IT科技浏览4127
导读:分布式计算模式:MapReduce...

分布式计算模式:MapReduce

什么是分治法?

分治法是将一个复杂            、难以直接解决的大问题            ,分割成一些规模小                  、可以比较简单或者直接求解的子问题                  ,这些子问题之间相互独立且与原问题形式相同       ,递归的求解这些子问题         ,然后将子问题的解合并得到原问题的解            。

适合采用分治法的问题有以下特征:

问题规模比较大或者复杂                  ,且问题可以分解为几个规模较小的       、简单的同类型问题进行求解                  。 子问题之间相互独立          ,不包含公共子问题       。 子问题的解可以合并得到原问题的解         。

采用分治法的核心步骤:

分解原问题 求解子问题 合并解

什么是MapReduce?

Google提出的MapReduce分布式计算模型      ,是分治法的典型代表                  ,它一开始被应用于搜索领域             ,后来被广泛应用到解决各种海量数据的计算问题                  。

MapReduce分为Map和Reduce两个核心阶段   ,其中Map对应            ”分“                  ,即把复杂的任务分解为若干                  ”简单的任务“来执行                ,Reduce对应着       ”合“,即对Map阶段的结果进行汇总          。

MapReduce拆分后的任务具有以下特征:

相对于原始任务来说               ,拆分后的子任务和原任务是同质的      。 多个子任务之间没有依赖                   ,可以独立运行         、并行计算                  。

MapReduce包括三大组件:

Master    ,负责分配任务                  、协调任务            ,并未Mapper分配map()函数操作          、为Reducer分配reduce()函数操作             。 Mapper worker                  ,负责Map函数功能       ,执行子任务   。 Reducer worker         ,负责Reduce函数功能                  ,汇总各个子任务的结果                  。

整个MapReduce的工作流程可以以分为5个阶段:输入      、拆分                  、映射             、化简和输出                。

什么是Fork-Join模式?

Fork-Join是Java等语言或者库提供的原生多线程并行处理框架          ,采用线程级的分而治之的计算模式      ,充分利用多核CPU的优势                  ,以递归的方式把一个任务拆分成多个“小任务         ”             ,把多个“小任务                  ”放在多个处理器上运行   ,即Fork操作                  ,当多个“小任务          ”执行完成后                ,在将这些直结果合并起来即可得到原始任务的结果,即Join操作。

Fork-Join模式不能大规模扩展               ,只适用于在单个Java虚拟机运行                   ,多个小任务虽然运行在不同的处理器上    ,但是可以互相通信               。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
day04-Vue01