hadoop如何在流式模式下知道你的键类型



map之后,reduce之前,有一个排序阶段。在流式模式下,hadoop是如何知道你的键类型并排序的?

例如

输入文件格式

1990    1
1991    4
1992    5
...

map的结果有关键字1990,1991,1992…hadoop是如何排序的?(数字排序或字母排序)

在StreamJob中,映射输出键/值对被指定为

idResolver.resolve(jobConf_.get("stream.map.output",
  IdentifierResolver.TEXT_ID));
jobConf_.setClass("stream.map.output.reader.class",
  idResolver.getOutputReaderClass(), OutputReader.class);
jobConf_.setMapOutputKeyClass(idResolver.getOutputKeyClass());
jobConf_.setMapOutputValueClass(idResolver.getOutputValueClass());

除非将stream.map.output属性设置为rawbytestypedbytes,否则映射输出键/值将设置为IdentifierResolver#resolve中的Text.class。

setOutputKeyClass(Text.class);
setOutputValueClass(Text.class);

在Text.java中,Comparator子类扩展了WritableComparator并实现了按字典顺序(字典或字母顺序)进行比较的compare方法。

查看StreamJob, IdentifierResolver和Text类

相关内容

  • 没有找到相关文章

最新更新