Hadoop mapreduce定义流分隔符

时间:2015-12-03 22:09:04

标签: hadoop mapreduce hadoop-streaming hadoop-partitioning

我正在使用Hadoop 2.7.1

我真的很难理解应用流程排序中的哪一点,如何更改排序顺序以及分隔符。阅读documentation让我更加困惑,因为一些配置变量似乎可以互换使用(参见partitioner example中使用的map.output.key.field.separatorcomparator example中的mapreduce.map.output.key.field.separator。 / p>

我的问题

  1. 在过程的哪个阶段,使用了这些配置变量中的每一个以及它们究竟会产生什么影响(通过查看它们是否可以告诉我?
  2. 此外,当它们一起使用时会发生什么?他们互相躲过了吗?

    • mapreduce.map.output.key.field.separator
    • map.output.key.field.separator
    • stream.map.output.field.separator
    • stream.num.map.output.key.fields
    • mapreduce.partition.keypartitioner.options
    • mapred.text.key.partitioner.options
    • mapreduce.fieldsel.data.field.separator
    • mapreduce.fieldsel.map.output.key.value.fields.spec
    • mapreduce.fieldsel.reduce.output.key.value.fields.spec
    • stream.reduce.input.field.separator
    • stream.num.reduce.input.fields
    • stream.reduce.output.field.separator
    • stream.num.reduce.output.fields
  3. 只需搜索streaming documentation即可查看相关内容。大多数(不包含在mapred-default.xml中)。

    我觉得我的困惑可能是由于将记录分成键和值,以及将键分成多个字段之间的区别。

    我对这个过程的理解(暂时忽略了合成器):

    1. 输入发送到Mappers
    2. 的数据分组
    3. Mapper输出分为(keyvalue)对并发送至Partitioner
    4. Partitioner根据密钥(和密钥中的字段?)将Mapper输出发送到Comparator
    5. Comparator对每个分区进行排序并将其发送到Reducer

0 个答案:

没有答案