1.MapReduce多路径输入
1.1FileInputFormat.addInputPath(s)
FileInputFormat.addInputPath()是我们最常用的设置MapReduce输入路径的方法了。其实,FileInputFormat有两个这样的方法:
[html] view plain copy
static void addInputPath(Job job, Path path)
static void addInputPaths(Job job, String commaSeperatedPaths)
addInputPath()只能指定一个路径,如果要想添加多个路径需要多次调用该方法:
[java] view plain copy
FileInputFormat.addInputPath(job, new Path(args[0]));
FileInputFormat.addInputPath(job, new Path(args[1]));
FileInputFormat.addInputPath(job, new Path(args[2]));
addInputPaths()可以指定多条路径,而这多条路径是用“,”分隔的一个字符串:
[java] view plain copy
String paths = strings[0] + "," + strings[1];
FileInputFormat.addInputPaths(job, paths);
支持多路输出(suffixmultipletextoutputformat)
如下示例:
hadoop streaming \
-input /home/mr/data/test_tab/ \
-output /home/mr/output/tab_test/out19 \
-outputformatorg.apache.hadoop.mapred.lib.suffixmultipletextoutputformat\ # 指定outputformat为org.apache.hadoop.mapred.lib.suffixmultipletextoutputformat
-jobconf suffix.multiple.outputformat.filesuffix=a,c,f,abc,cde \ # 指定输出文件名的前缀,所有需要输出的文件名必须通过该参数配置,否则job会失败
-jobconf suffix.multiple.outputformat.separator="#"\ # 设置value与文件名的分割符,默认为“#”,如果value本身含有“#”,则可以通过该参数设置其他的分隔符
-mapper "cat" \
-reducer "sh reduce.sh" \
-file reduce.sh
注:标记为红色的参数必须设置!
Hadoop|
Apache Pig|
Apache Kafka|
Apache Storm|
Impala|
Zookeeper|
SAS|
TensorFlow|
人工智能基础|
Apache Kylin|
Openstack|
Flink|
MapReduce|
大数据|
云计算|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....