Мне нужно вызвать задание mapreduce из java-приложения. Я используюИсключение при попытке запустить задание mapreduce из java-приложения
ToolRunner.run(new Validation(), pathsMoveToFinal.toArray(new String[pathsMoveToFinal.size()]));
Если я не установлю mapred.job.jobtracker Conf, он работает как всегда. Задача карты переходит на 100%, а затем возвращается к другому проценту. Если я устанавливаю mapred.job.jobtracker, он жалуется на класс картографа не может быть найден:
java.lang.RuntimeException: java.lang.ClassNotFoundException: utils.DataValidationExtractorMapper
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:809)
at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:157)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:569)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
at org.apache.hadoop.mapred.Child.main(Child.java:170)
Caused by: java.lang.ClassNotFoundException: utils.DataValidationExtractorMapper
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:762)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:807)
... 4 more
Может кто-нибудь пожалуйста, дайте мне подсказку. Спасибо, у вас хорошие выходные.
это проблема с classpath. Если вы используете eclipse, вам нужно добавить банки в путь к классам –
Спасибо. У меня есть банки в моем классе. Когда я пытаюсь из окна eclipse, он может перейти к методу запуска Validation. Но после того, как я упакую его и запускаю из linux, он дает это исключение. У меня есть jar в папке lib. –
Если вы не строите банку «все в одном», вам нужно исправить свой путь к классу. –