Необходимость создания файла jar при каждом изменении кода в Map reduce

#hadoop #mapreduce

#hadoop #mapreduce

Вопрос:

Я запускаю программу (MapReduce) в кластере с одним узлом Hadoop. В логике MapReduce часто вносятся некоторые изменения. Я использую eclipse IDE.

Каждый раз после внесения изменений в логику я создаю файл jar для проверки задания Mapreduce в Hadoop. Это немного утомительно создавать файл jar каждый раз после изменения логики MapReduce.

Есть ли более простой способ создавать файл jar каждый раз, когда вносятся изменения? Пожалуйста, сообщите.

Комментарии:

1. используете ли вы какой-либо инструмент сборки?

Ответ №1:

Неясно, является ли проблемой тот факт, что вам нужно создавать файл jar, или процесс создания jar кажется слишком сложным. Во-первых, вам нужно создать файл jar для отправки задания в Hadoop. Обойти это невозможно. Во-вторых, чтобы упростить процесс создания файла jar, вы можете использовать инструмент сборки, такой как Maven, чтобы упростить это. Плагин сборки Maven также упакует uber jar со всеми вашими зависимостями, если это необходимо.

Ответ №2:

Я использую Scalding для написания заданий mapreduce (он такой же краткий, как Pig, и такой же гибкий / производительный, как Java), затем я использую sbt для сборки. У меня есть скрипт rsync, который синхронизирует мой код с местоположением в кластере, где я запускаю «sbt concole» — это repl (оболочка), в которую вы можете импортировать библиотеки.

В результате я могу запускать задания mapreduce в интерактивном режиме в оболочке, просто вызывая свой код из проекта, записывая код непосредственно в оболочку или копируя вставляя код в оболочку. IME, вы не можете превзойти этот рабочий процесс!

Ответ №3:

Если вы используете Eclipse IDE, вы можете добавить плагин MapReduce в eclipse и создать местоположение, указав номера портов HDFS и MapReduce. Итак, в eclipse вы можете просто щелкнуть правой кнопкой мыши и выполнить> выбрать Выполнить на hadoop, что позволит избежать создания файла jar.