核心
划分策略:基于弧度的划分策略
-
MapReduce 框架下影响集群处理速度的两个重要因素:
l) Map 与 Reduce 之间的传输量 ;2) 分配到各个计算节点的计算量
如果不考虑 Map 与 Reduce 之间的传输量,算法将受到传输带宽的限制,并且如果中间结果较大, Map 需要将中间计算结果写入磁盘,从而带来了大量的磁盘1/0 。负载均衡问题是 MapReduce 计算中经常遇到的问题,如果任务划分得不合理,会导致整个计算过程受制于单个任务而造成瓶颈;并且对于拥有大量计算的任务来说,一且任务失败必须重做,更加影响计算进度。 Hadoop 可以通过设置任务重做次数来缓解这个问题,但也只能在预测到单个任务有可能失败时重新启动一个任务来计算,并不能真正解决负载的均衡性问题。 -
使用mapreduce对数据进行分区处理的一个关键地方,需要证明下面的性质:
-
MapReduce 计算框架原理如
图所示,一个 MapReduce 任务通常被分解为 Map 和 Re
duce 两阶段执行,任务开始时作业调度器为每一个 Hadoop
分布式文件系统 (HDFS) 中的数据分片启动一个 Map 任务:
将原数据以 (Keyl, Valuel>的键值对形式输入,运算产生中
间结果 (Key2 , List(Values)) 。接着进行Combine 运算,该过
程将同一分片内具有相同 Key 值的 Value 值予以合并,然后
将结果传送给 Reduce 端, Reduce 将根据各 Key 值计算出的
最终结果予以输出。 Combine 通常会使用 Reduce 实例进行
初始化,这可以大大减少计算框架内数据的传输量,从而提升
计算框架的效率。