Как установить Apache ZooKeeper на Debian 10
На этой странице
- Предпосылки
- Начало работы
- Установить Java
- Создание системного пользователя для Zookeeper
- Скачать Zookeeper
- Настройка Zookeeper
- Запуск и тестирование сервера Zookeeper
- Создание служебного файла Systemd для Zookeeper
- Заключение
Apache Zookeeper — это бесплатная служба с открытым исходным кодом для распределенных систем, которая помогает вам управлять большим набором хостов. Это централизованная служба, используемая для хранения информации о конфигурации, именования и групповых служб. Он написан на Java и позволяет разработчикам сосредоточиться на создании функций программного обеспечения, не беспокоясь о распределенном характере приложения. Apache ZooKeeper чаще всего используется в рабочих нагрузках с преобладанием чтения, где операции чтения гораздо более распространены, чем операции записи. Он поставляется с богатым набором функций, включая синхронизацию, упорядоченные сообщения, сериализацию, надежность, атомарность, быструю обработку и многое другое. Он имеет механизм блокировки и синхронизации, который помогает вам в автоматическом восстановлении после сбоя при подключении других распределенных приложений. Проект Zookeeper — один из самых успешных проектов фонда Apache. Многие компании используют Zookeeper для создания высокодоступных распределенных систем в больших масштабах.
В этом руководстве мы покажем вам, как настроить кластер Apache Zookeeper с одним узлом на сервере Debian 10.
Предпосылки
- Сервер под управлением Debian 10 с 2 ГБ ОЗУ.
- На вашем сервере настроен пароль root.
Начиная
Перед запуском рекомендуется обновить ваш сервер до последней версии. Вы можете обновить его с помощью следующей команды:
apt-get update -y
apt-get upgrade -y
Как только ваш сервер будет обновлен, перезапустите его, чтобы изменения вступили в силу.
Установить Java
Apache Zookeeper написан на языке Java. Поэтому вам нужно будет установить Java в вашей системе. По умолчанию последняя версия Java доступна в репозитории по умолчанию Debian 10. Вы можете установить его, выполнив следующую команду:
apt-get install default-jdk -y
После установки Java проверьте установленную версию Java с помощью следующей команды:
java --version
Вы должны получить следующий результат:
openjdk 11.0.5 2019-10-15 OpenJDK Runtime Environment (build 11.0.5+10-post-Debian-1deb10u1) OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Debian-1deb10u1, mixed mode, sharing)
Когда вы закончите, вы можете приступить к созданию системного пользователя для Zookeeper.
Создайте системного пользователя для Zookeeper
Рекомендуется создать выделенного пользователя для запуска службы Zookeeper. Это повысит вашу безопасность и управляемость.
Сначала выполните следующую команду, чтобы создать пользователя zookeeper с домашним каталогом:
useradd zookeeper -m
Затем установите оболочку по умолчанию для пользователя zookeeper с помощью следующей команды:
usermod --shell /bin/bash zookeeper
Затем установите пароль для пользователя zookeeper с помощью следующей команды:
passwd zookeeper
Затем добавьте пользователя zookeeper в группу sudo:
usermod -aG sudo zookeeper
На этом этапе вы создали и настроили пользователя Zookeeper. Теперь вы можете приступить к загрузке Zookeeper.
Скачать ZooKeeper
Во-первых, вам нужно будет загрузить последнюю версию Apache Zookeeper с официального сайта. На момент написания этой статьи последняя версия Apache Zookeeper — 3.5.6.
Чтобы загрузить его, измените каталог на /opt и выполните следующую команду:
cd /opt
wget https://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.5.6-bin.tar.gz
После завершения загрузки извлеките загруженный файл с помощью следующей команды:
tar -xvzf apache-zookeeper-3.5.6-bin.tar.gz
Затем переименуйте извлеченный каталог в zookeeper и предоставьте соответствующие разрешения:
mv apache-zookeeper-3.5.6-bin zookeeper
chown -R zookeeper:zookeeper /opt/zookeeper
Далее вам нужно будет создать каталог данных для Zookeeper, чтобы хранить все данные о конфигурации и состоянии. Вы можете создать в локальной файловой системе или удаленной файловой системе в соответствии с вашими потребностями.
Вы можете создать каталог данных с помощью следующей команды:
mkdir -p /data/zookeeper
Затем измените владельца каталога данных на пользователя zookeeper:
chown -R zookeeper:zookeeper /data/zookeeper
На данный момент вы загрузили Zookeeper и создали для него каталог данных. Теперь вы можете приступить к настройке Zookeeper.
Настроить ZooKeeper
Все файлы конфигурации Zookeeper находятся в каталоге /opt/zookeeper/conf/. Вы можете создать файл конфигурации Zookeeper внутри каталога /opt/zookeeper/conf/ с помощью следующей команды:
nano /opt/zookeeper/conf/zoo.cfg
Добавьте следующие строки:
tickTime=2500 dataDir=/data/zookeeper clientPort=2181 maxClientCnxns=80
Сохраните и закройте файл, когда закончите.
Где:
- tickTime: этот параметр устанавливает продолжительность тика в миллисекундах.
- dataDir : укажите каталог данных для хранения данных Zookeeper.
- clientPort : укажите порт, используемый для прослушивания клиентских подключений.
- maxClientCnxns: используется для ограничения максимального количества клиентских подключений.
Примечание. Указанные выше параметры предназначены для разработки и тестирования. Вы можете изменить их в соответствии с вашими потребностями.
На этом этапе вы настроили Zookeeper. Теперь вы можете запустить сервер Zookeeper.
Запустите и протестируйте сервер Zookeeper
Вы можете запустить сервер Zookeeper с помощью следующей команды:
/opt/zookeeper/bin/zkServer.sh start
Вы должны получить следующий результат:
/usr/bin/java ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
Затем вы можете подключиться к серверу Zookeeper через порт 2181 с помощью следующей команды:
/opt/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
После подключения вы должны увидеть следующий вывод:
[zk: 127.0.0.1:2181(CONNECTED) 0]
Затем запустите команду справки, чтобы получить список команд, которые вы можете выполнить из клиента.
[zk: 127.0.0.1:2181(CONNECTED) 0] help
Вы должны увидеть следующий вывод:
ZooKeeper -server host:port cmd args addauth scheme auth close config [-c] [-w] [-s] connect host:port create [-s] [-e] [-c] [-t ttl] path [data] [acl] delete [-v version] path deleteall path delquota [-n|-b] path get [-s] [-w] path getAcl [-s] path history listquota path ls [-s] [-w] [-R] path ls2 path [watch] printwatches on|off quit reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*] redo cmdno removewatches path [-c|-d|-a] [-l] rmr path set [-s] [-v version] path data setAcl [-s] [-v version] [-R] path acl setquota -n|-b val path stat [-w] path sync path
После тестирования выйдите из сеанса клиента с помощью команды quit:
[zk: 127.0.0.1:2181(CONNECTED) 0] quit
Теперь вы можете остановить службу Zookeeper с помощью следующей команды:
/opt/zookeeper/bin/zkServer.sh stop
Вы должны увидеть следующую команду:
/usr/bin/java ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED
На данный момент вы успешно запустили и протестировали сервер Zookeeper.
Создайте служебный файл Systemd для Zookeeper
Далее вам нужно будет создать файл службы systemd для управления службой Zookeeper с помощью systemd.
Вы можете создать его с помощью следующей команды:
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 с помощью следующей команды:
systemctl daemon-reload
Затем запустите службу Zookeeper и включите ее запуск после перезагрузки системы с помощью следующей команды:
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 Sun 2019-12-29 15:12:39 UTC; 8min ago Docs: http://zookeeper.apache.org Process: 9229 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS) Main PID: 9245 (java) Tasks: 29 (limit: 2359) Memory: 49.7M CGroup: /system.slice/zookeeper.service ??9245 java -Dzookeeper.log.dir=/opt/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper-zookeeper-server-debian10.log -Dzookeeper. Dec 29 15:12:38 debian10 systemd[1]: Starting Zookeeper Daemon... Dec 29 15:12:38 debian10 zkServer.sh[9229]: /usr/bin/java Dec 29 15:12:38 debian10 zkServer.sh[9229]: ZooKeeper JMX enabled by default Dec 29 15:12:38 debian10 zkServer.sh[9229]: Using config: /opt/zookeeper/conf/zoo.cfg Dec 29 15:12:39 debian10 zkServer.sh[9229]: Starting zookeeper ... STARTED Dec 29 15:12:39 debian10 systemd[1]: Started Zookeeper Daemon.
Теперь вы можете легко управлять службой Zookeeper с помощью systemd.
Заключение
Поздравляем! вы успешно установили и настроили кластер Zookeeper с одним узлом на сервере Debian 10. Эта установка очень полезна для сред разработки и тестирования. Надеюсь, теперь у вас достаточно знаний для настройки кластера Zookeeper с одним узлом. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.