如何在hadoop工作中传递第三个参数

时间:2014-09-04 14:35:37

标签: hadoop mapreduce hadoop2

我使用java Class而不是命令hadoop jar / input / output运行我的hadoop作业。 在这种情况下,我的命令看起来像这样。 hadoop jar Main.class / input / location / output / location / thirdargument / file。 我知道如何在Main中的Driver类中添加输入路径和输出路径,但是如何添加输入依赖的第三个参数来获取输出。 下面是我添加输入和输出路径的方法。

请帮助添加第三个参数。

FileInputFormat.addInputPath(job, new Path("/path1/"));     //inputpath
FileOutputFormat.setOutputPath(job, new Path("/path2/"));   //outputpath

第三个参数添加?

2 个答案:

答案 0 :(得分:0)

我不知道是否可以通过添加其他路径获取第三个文件,但您可以使用,

try{
Path pt=new Path("hdfs://npvm11.np.wc1.yellowpages.com:9000/user/john/abc.txt");
FileSystem fs = FileSystem.get(new Configuration());
BufferedReader br=new BufferedReader(new InputStreamReader(fs.open(pt)));
String line;
line=br.readLine();
while (line != null){
System.out.println(line);
line=br.readLine();
}
}catch(Exception e){
}

我是从https://sites.google.com/site/hadoopandhive/home/hadoop-how-to-read-a-file-from-hdfs

获得的

答案 1 :(得分:0)

我查了一下这个方法。这个对我有用。 (Apache Hadoop 1.2.1)

FileInputFormat.setInputPaths(conf, new Path(args[0])); //输入1 FileInputFormat.setInputPaths(conf, new Path(args[1])); //输入2 FileOutputFormat.setOutputPath(conf, new Path(args[2])); //输出

我在发出命令时传递这些参数。

hadoop jar <jarfilepath> <class name> <Input1> <Input2> <Output>