如何将reduce分区放入hadoop集群中设计的机器中



例如:

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

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

我该怎么做?

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

引用官方文件,我建议您阅读:

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

看到您问题中的partition标记,可能值得说明的是,Partitioner定义了分区(而不是datanode),每个键最终都会出现在哪个分区中。例如,知道您有9个reduce任务(9个分区),您可能希望平均分配每个此类任务的工作负载。为了做到这一点,你可以定义,例如,以字母"s"开头的密钥应该发送到分区0,以字母"a"或"b"开头的密钥发送到分区1,等等(这只是一个愚蠢的例子来说明分区器的作用)。

相关内容

  • 没有找到相关文章

最新更新