Поиск по сайту:

Как установить Apache ZooKeeper на Debian 10


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить Java
  4. Создание системного пользователя для Zookeeper
  5. Скачать Zookeeper
  6. Настройка Zookeeper
  7. Запуск и тестирование сервера Zookeeper
  8. Создание служебного файла Systemd для Zookeeper
  9. Заключение

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 с одним узлом. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.