hadoop-config.sh в bin/ и libexec/
При настройке hadoop я обнаружил, что скрипт hadoop-config.sh присутствует в двух каталогах: bin/ и libexec/. Оба файла идентичны. Просматривая сценарии, я обнаружил, что если в libexec присутствует hadoop-config.sh, то он выполняется. Если нет, то вызывается тот, который находится под bin/. Какова цель хранить один и тот же файл в двух каталогах?
2 ответа
Спасибо за указание на это. Я пытался в моей системе
[root@prashant bin]# hadoop version
Hadoop 1.2.1
и ты абсолютно прав
20:39:57.038706 open("/usr/local/hadoop/libexec/../conf/hadoop-env.sh", O_RDONLY) = 3 <0.000253>
Когда я переместил этот файл, то он ссылался на файл внутри / bin
20: 42: 51.024234 open ("/ usr / local / hadoop / bin /../ conf / hadoop-env.sh", O_RDONLY) = 3 <0.000332>
Тогда я настроил последнюю версию hadoop
[root@hadoop libexec]# hadoop version
Hadoop 2.4.1
[root@hadoop libexec]# pwd
/usr/local/hadoop/libexec
[root@hadoop libexec]# ls -l hadoop-config.sh
-rwxr-xr-x 1 67974 users 9793 Jun 21 11:35 hadoop-config.sh
[root@hadoop bin]# pwd
/usr/local/hadoop/bin
[root@hadoop bin]# ls -l hadoop-config.sh
ls: cannot access hadoop-config.sh: No such file or directory
Итак, насколько я вижу, большая часть скрипта удалена из бина в последней версии, но до сих пор у меня нет ответа на ваш вопрос
Историческая случайность? Разработчики строят вещи только для того, чтобы заставить их работать? В прошлом не было огромных усилий, чтобы убедиться, что скрипты операционной оболочки, используемые для запуска всех Java-программ, хорошо продуманы и разработаны функционально.
Аллен Виттенауэр предпринял грандиозную задачу по консолидации и исправлению некоторых из этих проблем в HADOOP-9902. Возможно, вы захотите посмотреть этот выпуск JIRA.
Если вы используете релиз от Apache, вы, вероятно, увидите, что изменения будут "скоро". Если вы используете один из коммерческих релизов, я ожидаю, что они получат изменения намного позже; по крайней мере, они, вероятно, будут ждать, пока работа Аллена не будет полностью завершена.