hadoop,map / reduce输出文件(part-00000)和分布式缓存

时间:2010-07-08 08:12:39

标签: java hadoop

我的map / reduce的输出值是一个可写入的数组,它写在输出文件part-00000中(hadoop默认情况下这样做)。我需要这个数组用于我的下一个map函数,所以我想将这个数组保存在分布式缓存中。可以sombody告诉我如何从outputfile(part-00000)读取,它可能不是文本文件并存储在分布式缓存中。

1 个答案:

答案 0 :(得分:1)

我的建议:

使用以下属性创建新的Hadoop作业:

  • 输入包含所有part -...文件的目录。
  • 创建一个写入分布式缓存的自定义OutputFormat类。
  • 现在让你的工作基本上看起来像这样:

    conf.setInputFormat(SequenceFileInputFormat.class);
    conf.setMapperClass(IdentityMapper.class);
    conf.setReducerClass(IdentityReducer.class);
    conf.setOutputFormat(DistributedCacheOutputFormat.class);
    

看看Yahoo Hadoop教程,因为它有一些关于这一点的例子:http://developer.yahoo.com/hadoop/tutorial/module5.html#outputformat

HTH