Mapreduce-Eclipse: создание Eclipse для первого запуска моей программы, а затем запуска ее - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь отправить задание mapreduce из затмения, задание отправлено, но с ошибкой ClassNotFoundException.После некоторого исследования я нашел причину (пожалуйста, прочитайте объяснение ниже), и мне стало интересно, есть ли способ настроить затмение для решения этой проблемы.

Почему сбой задания с ClassNotFoundException

В коде драйвера mapreduce мы обычно устанавливаем Jar по имени класса, то есть с помощью функции JobConf.setJarByClass.Эта функция принимает java.lang.Class и находит jar, в котором она находится (вызывая ClassUtil.findContainedJar ).Этот файл позже загружается в HDFS как job.jar.

Но проблема в том, что Eclipse запускает Java-программу, компилирует классы и помещает файлы .class в каталог bin, добавляет каталог bin в CLASSPATH и запускаетMain класс.Из-за этого ClassUtil.findContainingJar не находит ни одного файла, содержащего класс аргумента (он только ищет .jar файлов) и возвращает null.Из-за этого ничего не загружается в HDFS, и задания Mapreduce не выполняются с исключением ClassNotFound.

Что ж, я могу написать простой метод, который может заархивировать требуемые классы и затем предоставить это имя фляги для JobConf но если есть простой способ изменить поведение затмения, это было бы очень полезно.

PS: проект простой Java-проект, и я запускаю его по умолчанию "Запустить конфигурацию "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...