Я недавно играл с Hadoop. У меня есть кластер с шестью узлами, работающий с HDFS, и я выполнил несколько заданий MapRed. Все идет нормально. Однако теперь я хочу делать это более систематично и с большим количеством узлов. Наша базовая система - Ubuntu, и текущая настройка была администрирована с использованием apt (для установки правильной среды выполнения java) и ssh / scp (для распространения различных файлов conf). Это явно не масштабируется с течением времени.
Есть ли у кого-нибудь опыт работы с хорошими системами для автоматического администрирования (возможно, немного неоднородных: разные размеры дисков, разное количество процессоров на каждом узле) кластеров hadoop? Я бы рассмотрел бездисковую загрузку, но представьте, что с большим кластером запуск и запуск кластера может оказаться узким местом на машине, обслуживающей ОС. Или какая-то форма распределенного debian, способная поддерживать синхронизацию машинной среды? И как люди успешно управляют файлами conf на нескольких (потенциально неоднородных) машинах?
Большое спасибо заранее,
Alex
Я бы рекомендовал, чтобы ваши узлы были как можно более похожими. Как вы узнали, разные настройки для каждого узла усложняют жизнь.
Каждый кластер, который я запускаю в настоящее время, имеет абсолютно одинаковые блоки, что означает, что вся моя конфигурация для каждого узла одинакова. Конфигурация хранится на домашнем сервере NFS. Машины устанавливаются как стандартная CentOS, а затем применяется политика CFengine, которая обрабатывает установку пакетов CDH hadoop / hbase, настроенных для использования общей конфигурации. После запуска демонов машина автоматически станет частью кластера.
В общем, я настоятельно рекомендую использовать CFengine, puppet, chef или одну из других систем конфигурации. Это значительно упрощает жизнь, особенно если у вас разные конфигурации. Это также означает, что вы можете просто установить стандартную базовую версию операционной системы, а затем применить политики для обработки всей установки и настройки. Никакой сетевой загрузки не требуется.
Слегка неприятная вещь с разными конфигурациями заключается в том, что файлы конфигурации, такие как hdfs-site.xml
и mapred-site
не может использовать наследование, например предоставление общего файла, а затем несколько конкретных настроек, таких как каталог данных или количество слотов карты, для определенного узла. Итак, что вам, вероятно, придется сделать, это создать общий файл и объединить его с конкретными настройками для узла, а затем отправить его в качестве конфигурации для узла.