MapReduce

优点

   1. 易于编程,用户只关心业务逻辑,实现框架的接口。

   2. 良好的扩展性,可以动态增加服务器,解决计算资源不够问题。

   3. 高容错性,任何一个机器挂掉,可以将任务转移到其他节点。

   4. 适合海量数据计算(TB/PB),几千台服务器共同计算。

 

缺点:

   1. 不擅长实时计算(时间比较长)。

   2. 不擅长流式计算(一条一条的过来处理), sparkstreaming和flink擅长。

   3. 不擅长DAG有向无环图计算,spark擅长。

 

 

核心编程思想

1)分布式的运算程序往往需要分成至少2个阶段。

2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。

3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。

4MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。

 

posted @ 2022-07-21 16:12  小王同学学编程  阅读(39)  评论(0编辑  收藏  举报
levels of contents