Apache Zookeeper, для чего нужен.
Apache Zookeeper - централизованная служба для поддержки информации о конфигурации, именования, обеспечения распределенной синхронизации и предоставления групповых услуг. Все эти виды услуг используются в той или иной форме распределенными приложениями.
Apache ZooKeeper - это волонтерский проект с открытым исходным кодом в рамках Apache Software Foundation.
Не будем вдаваться в технические подробности, но стоит отметить, что для работы таких приложений, как HBase, Kafka (ими мы и займемся далее), необходим Zookeeper.
Установка Apache Zookeeper.
При ОДНОНОДОВОЙ конфигурации установка не должна вызывать затруднения.
1. Качаем архив с нужной версией (в моей конфигурации это версия 3.4.13) с официального сайта.
2. Распаковываем его в каталог /usr/local.
3. Назначаем владельцем каталога zookeeper-3.4.13 пользователя hduser.
4. Создаем новый каталог zookeeper-3.4.13/data .
5. Создаем из шаблона и редактируем файл zookeeper-3.4.13/conf/zoo.cfg:
Должно быть так:
6. Все готово, запускаем сервер (zookeeper-3.4.13/bin) ./zkServer.sh start
Проверим состояние сервера командой (zookeeper-3.4.13/bin) ./zkServer.sh status
Подключим клиент к серверу: (zookeeper-3.4.13/bin) ./zkCli.sh -server master:2181
Если у вас все также, поздравляю, однонодовый (standalone) кластер готов!
.
При МНОГОНОДОВОЙ конфигурации:
1. Создать каталог zookeeper-3.4.13/logs.
2. Прописать данный каталог в файле zoo.cfg:
3. Удалить все содержимое из каталога zookeeper-3.4.13/data .
Создать в каталоге zookeeper-3.4.13/data файл myid и записать в него уникальный идентификатор, у нас будет 1.
4. Добавить строки с уникальными идентификаторами, именами и портами для каждой ноды в файл zoo.cfg:
После долгих мучений мой файл приобрел следующий вид:
Пришлось поменять номера портов хотя вроде бы это не должно влиять на результат./p>
5. Копируем каталог zookeeper-3.4.13 на все ноды кластера, например так:
sudo scp -r hduser@Master:/usr/local/zookeeper-3.4.13/* hduser@3VM:/usr/local/zookeeper-3.4.13/
Целевой каталог на ноде предварительно нужно создать и назначить владельца hduser.
6.Запускаем сервер (zookeeper-3.4.13/bin) ./zkServer.sh start на каждой ноде.
Проверяем: ./zkServer.sh status на каждой ноде.
Один из трех будет избран лидером а остальные - подчиненными:
Лидер:
Подчиненный:
Если все так, то мы настроили zookeeper-кворум! Далее займемся Kafkoй и HBase.
Комментировать могуть только зарегистрированные пользователи