MapReduce流程简要概括
1.分布式计算
分布式计算
- 很重要的思想就是,一个问题拆分为多个步骤和多份数据,然后很多台计算机一起处理,最后对这些数据处理结果汇总聚合就是最终结果。
- 我们的程序就是数据加逻辑/算法(代码),而要让多台电脑能够一起参与到问题解决中来,首先需要把数据和代码进行分割,这样让每台计算机都能参与计算与处理。
- 在这个过程中,如何保证各个计算机分到的数据和任务都是相对均衡跟适合的就很考验程序机制了。例如集群中有高配电脑和低配电脑,如何协调,让高配电脑和低配电脑都能分配到适合自己硬件配置的处理任
务。例如怎样给电脑的资源状态打分,这样可以判断出这台电脑是处于空闲还是高负载状态?例如怎样协调节点跟节点之间的通信,如何对处理任务和结果做汇总,如何对集群资源做汇总? - 分布式计算中几个概念:
- 资源池
- 任务队列
- rpc调用
- 负载均衡
- 心跳机制
- 数据分块
- 任务切片
2.MapReduce是什么?
- mapreduce是一种分布式处理数据的思想
- 分布式计算有很多种实现思路,mapreduce就是其中一种。
- 分布式计算通用部分,数据预处理。包括但不限于数据清洗、数据切块划分等操作。
- mapreduce,主要分为map阶段、reduce阶段。
- map阶段可以简单看做是数据转换阶段,就是把原始数据转