2012-07-12 87 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