Zookeeper — это служба распределенной координации с открытым исходным кодом, которая в основном используется для управления и координации различных служб и данных в распределенных системах. С точки зрения непрофессионала, это что-то вроде «администратора» или «диспетчера», который помогает различным службам и приложениям взаимодействовать и сотрудничать друг с другом.
пример:
Представьте себе организацию крупного мероприятия, например музыкального фестиваля. Чтобы мероприятие прошло гладко, организаторам необходимо согласовать многие аспекты, такие как места проведения, исполнители, продажа билетов и т. д.
Управление конфигурацией:Организатор составит подробный план,Содержит время для каждого исполнителя、Местоположение и другая информация. Этот план похож на Zookeeper Сохраненная информация о конфигурации гарантирует, что весь персонал будет иметь доступ к новейшим устройствам.
Служба именования:в деятельности,У каждого исполнителя уникальное имя,Зрители и сотрудники могут найти их по имени. Zookeeper Он предоставляет «имена книг» для этих услуг.
Служба синхронизации:на музыкальном фестивале,Все исполнители должны начать выступать одновременно.,Организаторы позаботятся о том, чтобы каждый исполнитель вышел онлайн в нужное время.,Избегайте конфликтов. Это похоже на Zookeeper. Синхронизируйте различные сервисы.
Механизм выборов:Если есть несколько стадий,Организаторам может потребоваться выбрать одного человека для координации всего мероприятия.,Следите за тем, чтобы все выступления на сцене проходили гладко. Это что-то вроде «лидера» Zookeeper в распределенной системе.
hadoop102 | hadoop103 | hadoop104 |
---|---|---|
zk | zk | zk |
Настройте файл myid в режиме кластера. Этот файл находится в каталоге dataDir. В этом файле есть данные, имеющие значение A. Zookeeper читает этот файл при запуске и сравнивает содержащиеся в нем данные с информацией о конфигурации в Zoo. cfg, чтобы сделать вывод. Какой это сервер?
Мы используем версию Zookeeper3.7 (apache-zookeeper-3.7.1-bin.tar.gz).
Распаковать под Hadoop102
cd /opt/module
# Разархивировать
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
# Переименовать
mv apache-zookeeper-3.7.1-bin/ zookeeper
# Редактировать файл конфигурации
vim /etc/profile
# ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=:$ZOOKEEPER_HOME/bin:$PATH
# Загрузите переменные среды, чтобы они вступили в силу
source /etc/profile
# Создайте zkData в каталоге /opt/module/zookeeper/.
cd zookeeper
mkdir zkData
cd zkData
# Установите myid Hadoop102 равным 2.
vim myid
2
# Настройте файл Zoo.cfg
cd /opt/module/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
# Изменить файл конфигурации настроек
vim zoo.cfg
# Изменить конфигурацию пути хранения данных
dataDir=/opt/module/zookeeper/zkData
# Конфигурация кластера
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
# удаленная копия
scp -r /opt/module/zookeeper hadoop103:/opt/module/
scp -r /opt/module/zookeeper hadoop104:/opt/module/
# Войдите в систему и измените Hadoop103 и Содержимое соответственно. файла myid на Hadoop104 равно 3.、4
# Создать скрипт
vim start-zk.sh
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
ssh $host "source /etc/profile;zkServer.sh start"
echo "$host zookeeper Server Начинаю..."
done
# Создать скрипт
vim stop-zk.sh
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
ssh $host "source /etc/profile;/opt/module/zookeeper/bin/zkServer.sh stop"
echo "$host zookeeper Server Закрытие..."
done
Успешный запуск имеет следующие признаки:
На каждой машине jps есть процесс QuorumPeerMain.
Проверьте статус Zookeeper каждого компьютера, чтобы отобразить текущий статус Zookeeper, включая информацию о кластере, статус узла и т. д.
zkServer.sh status