zoukankan      html  css  js  c++  java
  • Hadoop基础(二十四):ReduceTask工作机制

    1ReduceTask工作机制

    ReduceTask工作机制,如图4-19所示。

    4-19 ReduceTask工作机制

    1Copy阶段:ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。

    2Merge阶段:在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。

    3Sort阶段:按照MapReduce语义,用户编写reduce()函数输入数据是按key进行聚集的一组数据。为了key相同的数据聚在一起,Hadoop采用了基于排序的策略。由于各个MapTask已经实现对自己的处理结果进行了局部排序,因此,ReduceTask只需对所有数据进行一次归并排序即可。

    4Reduce阶段:reduce()函数将计算结果写到HDFS上。

    2.设置ReduceTask并行度(个数)

    ReduceTask的并行度同样影响整个Job的执行并发度和执行效率,但与MapTask的并发数由切片数决定不同,ReduceTask数量的决定是可以直接手动设置:

    // 默认值是1,手动设置为4

    job.setNumReduceTasks(4);

    3.实验:测试ReduceTask多少合适

    1)实验环境:1个Master节点,16个Slave节点:CPU:8GHZ,内存: 2G

    2)实验结论:

    4-3 改变ReduceTask (数据量为1GB

    MapTask =16

    ReduceTask

    1

    5

    10

    15

    16

    20

    25

    30

    45

    60

    总时间

    892

    146

    110

    92

    88

    100

    128

    101

    145

    104

    4.注意事项

  • 相关阅读:
    MongoDB数据库学习总结
    windows及linux环境下永久修改pip镜像源的方法
    enumerate枚举函数
    sum求和函数
    zip拉链函数
    python实现面对面快传
    redis实现发布订阅
    python自定义classmethod
    Nginx为什么支持那么高的并发量?
    java进阶(28)--Map集合
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13341051.html
Copyright © 2011-2022 走看看