Как настроить кластер Apache ZooKeeper в Ubuntu 18.04 LTS
Это руководство существует для этих версий ОС
- Ubuntu 20.04 (Focal Fossa)
- Ubuntu 18.04 (Bionic Beaver)
На этой странице
- Требования
- Начало работы
- Установить Java
- Создание пользователя ZooKeeper
- Установить ZooKeeper
- Настройка ZooKeeper
- Создание файла службы Systemd для ZooKeeper.
Zookeeper — это централизованная служба для управления информацией о конфигурации, именования, распределенной синхронизации и обеспечения групповых служб, которая публикуется как программное обеспечение с открытым исходным кодом. Он написан на языке Java, что позволяет вам сосредоточиться на основной логике приложения, не беспокоясь о распределенном характере приложения. Архитектура ZooKeepers поддерживает высокую доступность за счет избыточных сервисов. Zookeeper позволяет распределенным процессам координировать друг с другом через общее иерархическое пространство имен регистров данных. Zookeeper также предлагает своим клиентам высокую пропускную способность, высокую доступность, низкую задержку и строго контролируемый доступ к Znode. Zookeeper специально разработан для хранения информации о состоянии, конфигурациях, информации о местоположении и т. д. ZooKeeper предлагает множество функций, таких как надежная система, простая архитектура, быстрая обработка, масштабируемость и многое другое.
В этом руководстве мы узнаем, как настроить кластер Apache ZooKeeper с одним узлом в Ubuntu 18.04.
Требования
- Сервер под управлением Ubuntu 18.04.
- На вашем сервере установлен пароль root.
Начиная
Во-первых, вам нужно будет обновить вашу систему до последней версии. Вы можете сделать это, выполнив следующую команду:
apt-get update -y
apt-get upgrade -y
После обновления системы перезагрузите систему, чтобы применить все изменения.
Установить Java
Zookeeper написан на Java. Итак, вам нужно будет установить Java в вашу систему. По умолчанию последняя версия Java недоступна в стандартном репозитории Ubuntu 18.04. Итак, добавьте репозиторий Java с помощью следующей команды:
add-apt-repository ppa:linuxuprising/java
Затем обновите репозиторий и установите Java с помощью следующей команды:
apt-get update -y
apt-get install oracle-java11-set-default
После установки Java вы можете проверить версию Java с помощью следующей команды:
java --version
Вы должны увидеть следующий вывод:
java 11.0.2 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.2+7-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+7-LTS, mixed mode)
Как только вы закончите, вы можете перейти к следующему шагу.
Создайте пользователя ZooKeeper
Далее вам нужно будет создать пользователя zookeeper для запуска службы zookeeper.
Сначала создайте пользователя zookeeper с помощью следующей команды:
useradd zookeeper -m
usermod --shell /bin/bash zookeeper
Затем установите пароль с помощью следующей команды:
passwd zookeeper
Затем добавьте пользователя zookeeper в группу sudo, чтобы он мог выполнять команды в привилегированном режиме:
usermod -aG sudo zookeeper
После создания пользователя вы можете приступить к установке ZooKeeper.
Установить Зоокипер
ZooKeeper сохраняет все данные о конфигурации и состоянии на диск. Итак, вам нужно будет создать структуру каталогов для ZooKeeper с помощью следующей команды:
mkdir -p /data/zookeeper
Затем укажите правильное право собственности на каталог /data с помощью следующей команды:
chown -R zookeeper:zookeeper /data/zookeeper
Затем измените каталог на /opt и загрузите последнюю версию ZooKeeper с помощью следующей команды:
cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
Затем извлеките загруженный файл с помощью следующей команды:
tar -xvzf zookeeper-3.4.9.tar.gz
Затем переименуйте извлеченный двоичный файл с помощью следующей команды:
mv zookeeper-3.4.9 zookeeper
Затем передайте право собственности пользователю ZooKeeper с помощью следующей команды:
chown -R zookeeper:zookeeper /opt/zookeeper
Настроить ZooKeeper
Далее вам нужно будет создать файл конфигурации для ZooKeeper. Вы можете сделать это с помощью следующей команды:
nano /opt/zookeeper/conf/zoo.cfg
Добавьте следующие строки:
tickTime=2500 dataDir=/data/zookeeper clientPort=2181 maxClientCnxns=80
Сохраните и закройте файл, когда закончите.
Затем запустите службу ZooKeeper с помощью следующей команды:
cd /opt/zookeeper
bin/zkServer.sh start
Вы должны увидеть следующий вывод:
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
Вы можете подключиться к локальному серверу ZooKeeper с помощью следующей команды:
bin/zkCli.sh -server 127.0.0.1:2181
После успешного подключения вы должны увидеть следующий вывод:
[zk: 127.0.0.1:2181(CONNECTED) 1]
Теперь введите help в приглашении, вы должны увидеть список команд, которые вы можете выполнить из клиента.
help ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port
Теперь введите quit, чтобы выйти из подключенного сеанса.
Вы можете остановить ZooKeeper с помощью следующей команды:
bin/zkServer.sh stop
Вы должны увидеть следующий вывод:
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED
Создайте файл службы Systemd для ZooKeeper
Далее вам нужно будет создать файл службы systemd для управления службой ZooKeeper. Вы можете сделать это с помощью следующей команды:
nano /etc/systemd/system/zookeeper.service
Добавьте следующие строки:
[Unit] Description=Zookeeper Daemon Documentation=http://zookeeper.apache.org Requires=network.target After=network.target [Service] Type=forking WorkingDirectory=/opt/zookeeper User=zookeeper Group=zookeeper ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg TimeoutSec=30 Restart=on-failure [Install] WantedBy=default.target
Сохраните и закройте файл, когда закончите.
Затем перезагрузите демон systemd, запустите службу ZooKeeper и включите ее запуск во время загрузки с помощью следующей команды:
systemctl daemon-reload
systemctl start zookeeper
systemctl enable zookeeper
Вы можете проверить статус службы ZooKeeper с помощью следующей команды:
systemctl status zookeeper
Вы должны увидеть следующий вывод:
? zookeeper.service - Zookeeper Daemon Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2019-03-06 15:03:01 UTC; 5s ago Docs: http://zookeeper.apache.org Process: 3909 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS) Main PID: 3926 (java) Tasks: 17 (limit: 1113) CGroup: /system.slice/zookeeper.service ??3926 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/.. Mar 06 15:03:00 ubuntu1804 systemd[1]: Starting Zookeeper Daemon... Mar 06 15:03:00 ubuntu1804 zkServer.sh[3909]: ZooKeeper JMX enabled by default Mar 06 15:03:00 ubuntu1804 zkServer.sh[3909]: Using config: /opt/zookeeper/conf/zoo.cfg Mar 06 15:03:01 ubuntu1804 zkServer.sh[3909]: Starting zookeeper ... STARTED Mar 06 15:03:01 ubuntu1804 systemd[1]: Started Zookeeper Daemon.
Поздравляем! вы успешно установили и настроили одноузловой кластер ZooKeeper на сервере Ubuntu 18.04. Теперь вы можете развернуть многоузловой кластер ZooKeeper для производства. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.