Hadoop控制输出文件命名

转载 2017年01月03日 17:20:04

原文地址:http://blog.csdn.net/zuochanxiaoheshang/article/details/8769198

点击阅读原文


---------------------------------------------------

Hadoop 控制输出文件命名
在一般情况下,Hadoop 每一个 Reducer 产生一个输出文件,文件以
part-r-00000、part-r-00001 的方式进行命名。如果需要人为的控制输出文件的命
名或者每一个 Reducer 需要写出多个输出文件时,可以采用 MultipleOutputs 类来
完成。MultipleOutputs 采用输出记录的键值对(output Key 和 output Value)或者
任意字符串来生成输出文件的名字,文件一般以 name-r-nnnnn 的格式进行命名,
其中 name 是程序设置的任意名字;nnnnn 表示分区号。
MultipleOutputs 的使用方式 的使用方式: :: :
想要使用 MultipeOutputs,需要完成以下四个步骤:
1. 在 Reducer 中声明 MultipleOutputs 的变量
private MultipleOutputs<NullWritable, Text> multipleOutputs;
2. 在 Reducer 的 setup 函数中进行 MultipleOutputs 的初始化
protected void setup(Context context)throws IOException, InterruptedException {
multipleOutputs = new MultipleOutputs<NullWritable, Text>(context);
}

3. 在 reduce 函数中进行输出控制
protected void reduce(Text key, Iterable<Text> values, Context context)throws IOException,
InterruptedException {
for (Text value : values) {
multipleOutputs.write(NullWritable.get(), value, key.toString());
}
}

4. 在 cleanup 函数中关闭输出 MultipleOutputs
protected void cleanup(Context context)throws IOException, InterruptedException {
multipleOutputs.close();
}

注意:multipleOutputs.write(key, value, baseOutputPath)方法的第三个函数表明了该输出所在的目录(相对于用户指定的输出目录)。如果baseOutputPath不包含文件分隔符“/”,那么输出的文件格式为baseOutputPath-r-nnnnnname-r-nnnnn);如果包含文件分隔符“/”,例如baseOutputPath=029070-99999/1901/part”,那么输出文件则为




相关文章推荐

hadoop文件输出控制,多路径输出到不同文件

hadoop的map和reduce的输出路径是通过两个函数设定: FileInputFormat.setInputPaths(job, args[0]); FileOutputFormat.s...

hadoop文件输出控制,多路径输出到不同文件

hadoop的map和reduce的输出路径是通过两个函数设定: FileInputFormat.setInputPaths(job, args[0]); FileOutputFormat.setOu...

hadoop多文件输出

hadoop多文件输出

Hadoop多文件(目录)输出 以及MultipleInputs存在的问题

需求:在mapreduce中输出两张表,每张表对应一个目录, 格式要求snappy.parquet 通过代码来分析: MultipleInputs.addInputPath(Job job, Pa...

Hadoop多文件输出:MultipleOutputFormat和MultipleOutputs深究

直到目前,我们看到的所有Mapreduce作业都输出一组文件。但是,在一些场合下,经常要求我们将输出多组文件或者把一个数据集分为多个数据集更为方便;比如将一个log里面属于不同业务线的日志分开来输出,...

hadoop MultipleTextOutputFormat 解析mahout 中kmeans算法输出到不同文件

hadoop 1.0.4 ,mahout 0.5 首先说明,本篇博客参考:http://blog.csdn.net/wypblog/article/details/17001131 。其次,这里的ha...

Hadoop多文件输出:MultipleOutputFormat和MultipleOutputs深究

由于本文比较长,考虑到篇幅问题,所以将本文拆分为二,请阅读本文之前先阅读本文的第一部分《Hadoop多文件输出:MultipleOutputFormat和MultipleOutputs深究(一)》。为...

hadoop中带后缀的多路输出part文件

package com.cmcm.hadoop.mapred.lib; import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat; i...

Hadoop解析序列文件并可视化输出

hadoop版本:1.0.4,jdk:1.7.0_25 64bit。 在进行mahout算法分析的时候有时会遇到算法最后的输出文件是序列文件的情况下,这样就不能直接通过HDFS文件系统看到最终的结果了...

Hadoop基于WordCount的Mapper、Reducer、Combiner、Partitioner和自定义多文件输出

1    Mapper的代码 public class WorldMapper extends Mapper{ public Text textvalue = new Text("test"); ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)