Среда выполнения показывает, что класс сопоставления не найден, исключение

map 0% уменьшить 0% 15/02/03 07:30:28 INFO mapreduce.Job: Идентификатор задачи: try_1422885720829_0097_m_000000_0, статус: FAILED Ошибка: java.lang.RuntimeException: java.lang.ClassNotFoundException: класс org.cognizant.pr2. TroubleMapper не найден в org.apache.hadoop.conf.Configuration.getClass (Configuration.java:1720) в org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass (JobContextImpl.java:186) в org.apache.hadoop. mapred.MapTask.runNewMapper (MapTask.java:721) на org.apache.hadoop.mapred.MapTask.run (MapTask.java:339) на org.apache.hadoop.mapred.YarnChild $ 2.run (YarnChild.java:162 ) в java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:396) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1491) в org.apache.hadoop.mapred.YarnChild.main (YarnChild.java:157) Вызвано: java.lang.ClassNotFoundException: класс org.cognizant.pr2.T roubleMapper не найден в org.apache.hadoop.conf.Configuration.getClassByName (Configuration.java:1626) в org.apache.hadoop.conf.Configuration.getClass (Configuration.java:1718) ... Еще 8

15/02/03 07:30:32 INFO mapreduce.Job: Id задачи: try_1422885720829_0097_m_000000_1, статус: FAILED Ошибка: java.lang.RuntimeException: java.lang.ClassNotFoundException: класс org.cognizant.pr2.TroubleMapper не найден в org. apache.hadoop.conf.Configuration.getClass (Configuration.java:1720) в org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass (JobContextImpl.java:186) в org.apache.hadoop.mapred.MapTask.run (NewMapper MapTask.java:721) на org.apache.hadoop.mapred.MapTask.run (MapTask.java:339) на org.apache.hadoop.mapred.YarnChild $ 2.run (YarnChild.java:162) на java.security. AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:396) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1491) в org.apache.hadoop. mapred.YarnChild.main (YarnChild.java:157) Вызвано: java.lang.ClassNotFoundException: класс org.cognizant.pr2.TroubleMapper not находится в org.apache.hadoop.conf.Configuration.getClassByName (Configuration.java:1626) в org.apache.hadoop.conf.Configuration.getClass (Configuration.java:1718) ... еще 8

15/02/03 07:30:35 INFO mapreduce.Job: Id задачи: try_1422885720829_0097_m_000000_2, статус: FAILED Ошибка: java.lang.RuntimeException: java.lang.ClassNotFoundException: класс org.cognizant.pr2.TroubleMapper не найден в org. apache.hadoop.conf.Configuration.getClass (Configuration.java:1720) в org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass (JobContextImpl.java:186) в org.apache.hadoop.mapred.MapTask.run (NewMapper MapTask.java:721) на org.apache.hadoop.mapred.MapTask.run (MapTask.java:339) на org.apache.hadoop.mapred.YarnChild $ 2.run (YarnChild.java:162) на java.security. AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:396) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1491) в org.apache.hadoop. mapred.YarnChild.main (YarnChild.java:157) Вызвано: java.lang.ClassNotFoundException: класс org.cognizant.pr2.TroubleMapper not находится в org.apache.hadoop.conf.Configuration.getClassByName (Configuration.java:1626) в org.apache.hadoop.conf.Configuration.getClass (Configuration.java:1718) ... еще 8

15/02/03 07:30:39 INFO mapreduce.Job: map 100% reduce 100% 15/02/03 07:30:39 INFO mapreduce.Job: Job job_1422885720829_0097 завершился неудачно с состоянием FAILED из-за: Task failed task_1422885720829_0097_m_000000 Не удалось выполнить задание как задачи не удалось. failedMaps: 1 failedReduces: 0

15/02/03 07:30:39 INFO mapreduce.Job: Счетчики: 6 Счетчиков заданий Неудачные задачи карты = 4 Запущенные задачи карты = 4 Другие задачи локальной карты = 3 Задачи локальной карты данных = 1 Общее время, затраченное всеми картами в занятые слоты (мс) = 8357 Общее время, затраченное всеми сокращениями в занятых слотах (мс) = 0


person jeevan kishore    schedule 03.02.2015    source источник
comment
Я попытался запустить код MR, который используется для загрузки данных из текстового файла hdfs в таблицу hbase, но он получал ошибку, как показано выше: класс Mapper не найден, исключение. Пока я запускаю код Mr, я передаю банку файл, входной путь, выходной путь, таблица hbase в качестве аргументов ... Plz hlp меня Я поражен этой проблемой в течение двух дней, я использовал такое предложение, как: job.setJarByClass (TroubleDriver.class);   -  person jeevan kishore    schedule 03.02.2015
comment
Вероятно, вам не хватало setJarByClass. См. stackoverflow.com/a/40312088/578101   -  person mauhiz    schedule 15.10.2019


Ответы (3)


Перекомпилируйте свой Java-код и убедитесь, что у вас есть все jar-файлы для запуска mr-заданий.

"su - hdfs" 

export HADOOP_CLASSPATH=`hbase classpath`

#### export HADOOP_CLASSPATH=/etc/hbase/conf:/usr/lib/hbase/*:jar

и запустите код MR!

person Ali Rezvanian    schedule 15.02.2015
comment
Спасибо Али за поддержку - person jeevan kishore; 08.04.2015

У меня есть решение этой проблемы, например, мы можем поместить банку прямо по этому пути: каталог / usr / lib / hadoop-mapreduce и запустить cmd из этого пути. Теперь он сможет получить доступ к нужному. Надеюсь, это будет полезно. Всем спасибо :-)

person jeevan kishore    schedule 08.04.2015
comment
Вы можете попробовать этот способ, если у вас есть доступ администратора, но это не законный способ. Таким образом, вы можете просто протестировать свой код. - person Nagaraj Vittal; 17.12.2018

Я использовал приведенный ниже код класса драйвера для решения этой проблемы.

public int run(String[] args) throws Exception {

    Configuration conf=new Configuration();
    Job job=Job.getInstance(conf, "MavenSample");

    ***job.setJarByClass(DriverClass.class);***

    job.setMapperClass(MapperClass.class);
    job.setReducerClass(ReducerClass.class);

    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(IntWritable.class);

    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);

    FileInputFormat.setInputPaths(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));         

    return job.waitForCompletion(true)?0:1;

}
person Kumar Basapuram    schedule 04.07.2015