Когда я настраиваю Hadoop, у меня в голове постоянно возникает один вопрос, но я не могу найти ответ.
Какие файлы конфигурации Hadoop необходимо скопировать на какие узлы. Например, я вношу изменения в следующие файлы:
hadoop-env.sh, core-site.xml, mapred-site.xml, hdfs-site.xml, мастера, подчиненные
Нужно ли мне копировать эти файлы на ВСЕ мои узлы Hadoop (что вызывает боль, если я обновляю один файл). Нужно ли копировать только определенные файлы? Или мне нужно внести изменения только на моих главных узлах?
Кажется, нигде не могу найти ответ, поэтому я хотел спросить здесь. (До этого момента я зеркалировал все файлы на каждом узле, но это кажется неэффективным. Моя установка работает.)
Что касается чтения, какие файлы:
hadoop-env.sh
: Всеcore-site.xml
: Всеhdfs-site.xml
: HDFS (NameNode, SecondaryNameNode, DataNode)mapred-site.xml
: MapReduce (JobTracker, TaskTracker)masters
и slaves
: Я не думаю, что они читаются приложениями напрямую, но вместо этого используются сценариями управления.Однако я бы посоветовал настроить систему развертывания, чтобы вы могли легко распределить все эти файлы по всем узлам, вместо того, чтобы пытаться выяснить, что для чего нужно. Это может быть просто сценарий, который вызывает ssh
с аутентификацией с открытым ключом, или это может быть что-то вроде Puppet или Chef.