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