【发布时间】:2016-03-16 02:20:48
【问题描述】:
在 cloudera linux 机器上我得到 ArrayIndexOutOfBoundsException: 3 .
我无法理解为什么这个程序会出现这个异常,只有其他人对我很好。
public class TransactionCount extends Configured implements Tool {
@Override
public int run(String[] arg0) throws Exception {
if(arg0.length<2)
{
System.out.println("Please provide inpt and output directory properly");
return -1;
}
JobConf conf=new JobConf(com.ankur.MRpractice.TransactionCount.class);
FileInputFormat.setInputPaths(conf, new Path(arg0[0]),new Path(arg0[1],new Path(arg0[2])));
FileOutputFormat.setOutputPath(conf,new Path(arg0[3]));
conf.setMapperClass(TransMapper.class);
conf.setReducerClass(TransReducer.class);
conf.setMapOutputKeyClass(Text.class);
conf.setMapOutputValueClass(IntWritable.class);
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setPartitionerClass(TransPartioner.class);
conf.setNumReduceTasks(4);
JobClient.runJob(conf);
return 0;
}
public static void main(String [] args) throws Exception
{
int exitCode=ToolRunner.run(new TransactionCount(), args);
System.exit(exitCode);
}
}
【问题讨论】:
-
我正在运行的命令是: hadoop jar TransactionCount.jar com.ankur.MRpractice.TransactionCount /user/mapreduce/tscInput/transactionCount /user/mapreduce/tscOutput 这是: hadoop jar jar_name Driver_Class input_file output_directory Getting Exception at line: FileInputFormat.setInputPaths(conf, new Path(arg0[0]),new Path(arg0[1],new Path (arg0[2])));
标签: java hadoop dictionary reduce