Я хочу отправить задание с каталогом конфигурационных файлов, а каталог не находится в hadoop dfs, есть ли у hadoop возможность сделать это?
Использовать - config опция для указания каталога файлов конфигурации.
Я хочу отправить каталог, как отправить файл jar задания, чтобы hadoop мог распределить задание и каталог конфигурацииto all datanode.
Перед отправкой задания файлы конфигурации должны присутствовать во всех узлах для запуска демонов, поэтому не имеет смысла распространять их при отправке задания.Для отправки любых дополнительных параметров используйте опцию -D .Если побочные данные огромны, тогда используйте DistributedCache , чтобы распределить данные и прочитать их в маппере и редукторе.
Я обнаружил, что опция -files, кажется, не работает, когда яиспользуйте эту команду: bin / hadoop jar job.jar входные данные -files conf_dir.Кажется, что опция -files работает только при потоковой передаче hadoop.
Опция -files
принимает разделенный запятыми список любых файлов (не каталогов), и файлы распределяются повсе узлы.Фреймворк не читает эти файлы, код на карте и задачи сокращения должны явно читать файлы.
Кроме того, в соответствии с Hadoop - Полное руководство
Имейте в виду, что некоторые свойства не действуют при настройке в конфигурации клиента.Например, если в своей заявке на работу вы задали mapred.tasktracker.map.tasks.maximum, ожидая, что это изменит количество слотов задач для тех, кто отслеживает выполнение вашей работы, вы будете разочарованы, так как это свойство толькоучитывается только в том случае, если задано в файле mapred-site.html участника задачи.В общем, вы можете указать компоненту, где свойство должно быть установлено по его имени, поэтому тот факт, что mapred.task tracker.map.tasks.maximum начинается с mapred.tasktracker, дает вам подсказку, что его можно установить только для TaskTracker.демон.Однако это не жесткое и быстрое правило, поэтому в некоторых случаях вам может потребоваться прибегнуть к методам проб и ошибок или даже прочитать источник.