Спецификация файла конфигурации задания Hadoop - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть поток ~ 10 заданий Hadoop.У меня есть последовательность XML-файлов, которые настраивают эти задания, например:

-conf /path/on/my/local/system/start-conf.xml
-conf /path/on/my/local/system/job-1-conf.xml
-conf /path/on/my/local/system/job-2-conf.xml
-conf /path/on/my/local/system/job-i-conf.xml
...
-conf /path/on/my/local/system/job-10-conf.xml

Предположим, у меня есть класс, который используется для запуска заданий, с именем "com.my.project.RunClass". Предположим, я выполняю свои заданияэта команда:

hadoop jar /path/to/project.jar com.my.project.RunClass -conf /path/on/my/local/system/start-conf.xml

Я хотел бы заменить сегмент "/ path / on / my / local / system" на какой-нибудь заполнитель, например: $ {root.conf.dir}, чтобы я мог запуститьзадания с чем-то вроде:

hadoop jar /path/to/project.jar com.my.project.RunClass -conf ${root.conf.dir}/job-1-conf.xml -Droot.conf.dir=/path/on/my/local/system

Возможно ли это с любыми версиями Hadoop?Я пользуюсь дистрибутивом Cloudera, и кажется, что он терпит неудачу каждый раз.

1 Ответ

1 голос
/ 17 ноября 2011

Я не знаю насчет bash 4. *, но более старые версии не поддерживают имена переменных с символами '.

Попробуйте

root_conf_dir="/path/on/my/local/system"
hadoop jar /path/to/project.jar com.my.project.RunClass \
    -conf "${root_conf_dir}"/job-1-conf.xml \
    -Droot.conf.dir="${root_conf_dir}"

Я надеюсь, чтопомогает.

...