【问题标题】:How to put the reduce partitions into designed machines in hadoop cluster?如何将reduce分区放入hadoop集群中的设计机器中?
【发布时间】:2016-08-06 16:12:35
【问题描述】:

例如:

减少结果:part-00000, part-00001 ... part-00008, 集群有 3 个数据节点,我想要

  • part-00000part-00001part-00002 放入slave0
  • part-00003part-00004part-00005 放入slave1
  • part-00006part-00007part-00008 放入slave2

我该怎么做?

【问题讨论】:

    标签: hadoop mapreduce hdfs reduce partition


    【解决方案1】:

    它不是那样工作的。 HDFS 中的文件不存储在任何特定的数据节点中。每个文件由块组成,每个块被复制到多个节点(默认为 3 个)。因此每个文件实际上存储在不同的节点中,因为组成它的块存储在不同的节点中。

    引用official documentation,我建议您阅读:

    HDFS 公开文件系统命名空间并允许将用户数据存储在文件中。在内部,一个文件被分成一个或多个块,这些块存储在一组 DataNode 中。 NameNode 执行文件系统命名空间操作,例如打开、关闭和重命名文件和目录。它还确定块到 DataNode 的映射。 DataNode 负责处理来自文件系统客户端的读取和写入请求。 DataNode 还根据 NameNode 的指令执行块创建、删除和复制。

    看到您问题中的分区标记,可能值得说明的是,分区器定义了每个键将在哪个分区(而不是数据节点)中结束。例如,知道您有 9 个 reduce 任务(9 个分区),您可能希望平均分配每个此类任务的工作负载。为了做到这一点,您可以定义,例如,以字母“s”开头的键应该发送到分区 0,以字母“a”或“b”开头的键应该发送到分区 1,等等。(只是一个愚蠢的例子来说明分区器的作用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多