2017-02-21 33 views
0

我試圖執行在Eclipse中的Hadoop的字計數程序執行單詞計數程序,我收到以下錯誤:得到錯誤,而在Hadoop中

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
at WordCount.run(WordCount.java:22) 
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
at WordCount.main(WordCount.java:35) 

我從網上覆制的代碼和代碼似乎然而罰款參考我在這裏粘貼代碼:

WordCount.java

import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.conf.*; 
import org.apache.hadoop.io.*; 
import org.apache.hadoop.mapred.*; 
import org.apache.hadoop.util.*; 

public class WordCount extends Configured implements Tool{ 
     public int run(String[] args) throws Exception 
     { 
     //creating a JobConf object and assigning a job name for  identification purposes 
     JobConf conf = new JobConf(getConf(), WordCount.class); 
     conf.setJobName("WordCount"); 

     //Setting configuration object with the Data Type of output Key and Value 
     conf.setOutputKeyClass(Text.class); 
     conf.setOutputValueClass(IntWritable.class); 

     //Providing the mapper and reducer class names 
     conf.setMapperClass(WordCountMapper.class); 
     conf.setReducerClass(WordCountReducer.class); 
     //We wil give 2 arguments at the run time, one in input path and other is output path 
     Path inp = new Path(args[0]); 
     Path out = new Path(args[1]); 
     //the hdfs input and output directory to be fetched from the command line 
     FileInputFormat.addInputPath(conf, inp); 
     FileOutputFormat.setOutputPath(conf, out); 

     JobClient.runJob(conf); 
     return 0; 
    } 

    public static void main(String[] args) throws Exception 
    { 
     // this main function will call run method defined above. 
    int res = ToolRunner.run(new Configuration(), new WordCount(),args); 
     System.exit(res); 
    } 

}

+0

您可以參考以下鏈接中的字數統計執行/提交示例http://ybhavesh.blogspot.in/2015/11/ways-to-write-traditional-word.html – Bhavesh

回答

0

似乎你沒有通過適當的命令行參數。

+0

如果您在談論提供缺少的代碼,然後我提供以下代碼片斷 - WordCountMapper.java和WordCountReducer.java – Lamar

+0

如何執行程序以及傳遞的命令行參數Path inp = new Path(args [0]); Path out = new Path(args [1]); –

+1

您可以參考以下鏈接中的字數統計執行/提交示例http://ybhavesh.blogspot.in/2015/11/ways-to-write-traditional-word.html – Bhavesh