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

Как настроить кластер Apache ZooKeeper в Ubuntu 18.04 LTS


Это руководство существует для этих версий ОС

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

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

  1. Требования
  2. Начало работы
  3. Установить Java
  4. Создание пользователя ZooKeeper
  5. Установить ZooKeeper
  6. Настройка ZooKeeper
  7. Создание файла службы 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 для производства. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.