У меня проблема с запуском задания Mapreduce.Проблема, я думаю, заключается в конфигурации.
Моя работа имеет два параметра: входной и выходной каталог.Проблема в том, что в задании есть внутренний код для точной подготовки данных: он извлекает репозитории из github в input location, заданный в качестве параметра, а затем сохраняет выходные данные в output каталог.Поэтому, когда я запускаю свое задание локально hadoop jar myjar.jar input output
, задание извлекает исходные файлы в каталог input и читает там форму.
Но это не тот случай, когда нужно запустить его в HDInsight.Я загрузил через scp файл jar и запустил его по yarn jar hadoop-1.0-SNAPSHOT.jar input output
.Как и предполагалось, задание считывало из хранилища больших двоичных объектов вместо расположения jar, но внутренний код записывал в локальную файловую систему, поэтому моя работа не видела входные файлы.
Я вижу здесь два варианта.Во-первых, предпочтительным является настройка hadoop для чтения из локальной файловой системы, чтобы задание увидело проверенные файлы.Второй - каким-то образом извлечь исходный код из github в каталог blob input .Я пытался запустить передачу заданий как входной каталог в виде wsab (wasb: //YOURDefaultContainer@YOURStorageAccount.blob.core.windows.net/SomeDirectory/ASubDirectory/), но это тоже не сработало.
Я использую jgit для извлечения исходных файлов:
Назначение файла = новый файл (inputDir + "/" + project);Git.cloneRepository (). SetURI (uri) .setDirectory (destination) .call ();
Спасибо за помощь.