2012-07-12 88 views
0

我可以获得如何使用任务副作用文件的示例吗?Hadoop任务副作用文件示例

public class Map0t extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable >{ 
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { 

     IntWritable one = new IntWritable(1); 
     StringTokenizer tokenizer = new StringTokenizer(value.toString(), ","); 

     String x; 
     String y; 
     String z; 

     x = tokenizer.nextToken(); 
     y = tokenizer.nextToken(); 
     z = tokenizer.nextToken(); 

     output.collect(new Text(x+" "+z), one); 

     } 

} 

我想要写,新的文本(X +”“+ y)时,新的文本(Z)如在上述映射函数在HDFS不同的文件夹的副作用。

我搜索了但找不到任何如何使用任务副作用文件的例子。

请帮我。

在此先感谢!

回答

0

不是最佳方法,但一个我能想到的方法是在映射器

公开赛在HDFS文件中设置(),写入该文件,然后关闭该文件在干净()在映射器。一个人认为要确保在映射器的setup()中使用唯一的文件名。

+0

Sripati,谢谢你的回复。我在多个输出的帮助下做到了。但是,我想将输出写入不同的文件夹,但多输出只能让我写入不同的命名文件。是否可以将来自同一个映射器或缩减器的输出写入不同的文件夹?如果是的话,你可以给语法? – 2012-07-14 02:46:40