У меня проблема с запуском задания mapreduce. Проблема, я думаю, в конфигурации.
Моя работа имеет два параметра: каталог Вход и выход. Проблема в том, что у Job есть внутренний код для подготовки данных, если быть точным:
Репозитории оформления заказа формируют github в расположение Вход, указанное в качестве параметра, а затем сохраняет вывод в каталоге выход. Поэтому, когда я запускаю свое задание локально, hadoop jar myjar.jar input output, задание проверяет исходные файлы в каталог Вход и также читает форму там.
Но это не тот случай, когда дело доходит до запуска в HDInsight. Я загрузил через scp файл jar и запустил его с помощью yarn jar hadoop-1.0-SNAPSHOT.jar input output. Как и предполагалось, задание читало из хранилища больших двоичных объектов, а не из местоположения jar, но внутренний код записывал в локальную файловую систему, поэтому моя работа не видела входных файлов.
Я вижу здесь два варианта. Во-первых, предпочтительный вариант - настроить hadoop для чтения из локальной файловой системы, чтобы задание могло видеть файлы с извлечением. Второй - как-то проверить исходный код из github в каталог blob Вход. Я попытался выполнить передачу задания как каталог Вход и wsab (wasb: //[email protected]/SomeDirectory/ASubDirectory/) uri, но это тоже не сработало.
Я использую jgit для проверки исходных файлов:
File destination = new File(inputDir + "/" + project); Git.cloneRepository().setURI(uri).setDirectory(destination).call();
Спасибо за помощь.
Я играю с конфигурацией и не уверен, собираюсь ли я изменить fs.default на файл:/// вместо wasb, если он будет работать на всех моих узлах кластера или только в локальном режиме?




<property> <name> fs.defaultFS </name> <value> wasb: //[email protected] </value> <final> true </final> </property>