2017-02-21 15 views
0

Я пытаюсь выполнить программу WordCount для Hadoop в затмении, и я получаю следующее сообщение об ошибке:получает ошибку во время выполнения программы WordCount в 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

 Смежные вопросы

  • Нет связанных вопросов^_^