Настройка ZooKeeper
Конфигурационные файлы
У ZooKeeper есть три основных файла конфигурации, расположенные в директории etc/zookeeper/conf/. Их можно редактировать вручную в текстовом редакторе, подключившись к хосту с ZooKeeper, или через Arenadata Cluster Manager (ADCM).
При редактировании вручную убедитесь, что вы обновили файлы конфигурации на всех хостах с компонентами ZooKeeper.
ПРИМЕЧАНИЕ
ZooKeeper поддерживает динамическую реконфигурацию. Эта функция позволяет изменять конфигурацию без перезапуска сервера, но это может помешать работе ADCM. |
В этой статье не рассматриваются дополнительные параметры конфигурации. Более подробно о конфигурации ZooKeeper читайте в документации ZooKeeper Administrator’s Guide.
zoo.cfg
Файл конфигурации zoo.cfg содержит основные настройки ZooKeeper. Если ZooKeeper был установлен через ADCM, он уже содержит минимальные параметры конфигурации. Если ZooKeeper был установлен вручную, необходимо настроить следующие параметры:
-
clientPort
— порт для клиентских подключений к ZooKeeper. Для SSL-соединений настройте параметрSecureClientPort
.clientPort
содержит порт для обычных соединений, аsecureClientPort
содержит порт для SSL-соединений. Если указаны оба параметра, включится смешанный режим. -
dataDir
— директория, где ZooKeeper хранит снимки базы данных и журнал транзакций. -
tickTime
— длина одного тика в миллисекундах. Это основная единица времени, используемая в ZooKeeper для регулирования heartbeat и timeout.
Информация об основных свойствах файла zoo.cfg доступна в разделе Main настроек ZooKeeper. Информацию о других свойствах zoo.cfg смотрите в разделе zoo.cfg.
zookeeper-env.sh
Файл zookeeper-env.sh используется для определения параметров конфигурации, связанных с операционной средой ZooKeeper, таких как Java_HOME
.
Вы также можете настраивать параметры в других файлах конфигурации, установив переменные среды в zookeeper-env.sh.
Дополнительную информацию о содержимом zookeeper-env.sh можно получить в разделе zookeeper-env.sh настроек ZooKeeper.
log4j.properties
Файл конфигурации log4j.properties содержит настройки логирования. Подробнее о настройке логирования читайте в статье Логирование в ZooKeeper.
Изменение конфигурации через ADCM
Чтобы настроить ZooKeeper с помощью ADCM:
-
На странице Clusters выберите нужный кластер.
-
Перейдите на вкладку Services и нажмите на ZooKeeper.
-
Найдите нужное свойство на странице конфигурации сервиса или странице Components. Дополнительные свойства можно отобразить, выключив опцию Show advanced.
-
Внесите необходимые изменения и нажмите Save.
-
В раскрывающемся меню Actions выберите Restart, убедитесь, что для параметра Apply configs from ADCM установлено значение
true
, и нажмите Run.
Рекомендации
Распространенные ошибки в конфигурации ZooKeeper, а также некоторые дополнительные настройки, которые могут улучшить производительность кластера:
-
Если с одним сервером ZooKeeper взаимодействует множество клиентов, использование опции
chroot
при подключении может упростить их работу. Эта опция позволяет выполнять команды, интерпретируя все пути относительно корня (аналогично команде unixchroot
). Пример строки подключения:127.0.0.1:4545/app/a
. -
Чтобы избежать предупреждений fsync в логах ZooKeeper, настройте выделенный диск для директории
dataLogDir
. Для этого добавьте параметрdataLogDir
в файл zoo.cfg. -
Для повышения производительности поместите журнал транзакций (
dataDir
) на выделенное устройство. Если журнал транзакций находится на сервере с высокой нагрузкой, это отрицательно скажется на производительности сервера ZooKeeper. -
Поддерживайте согласованность списка серверов для клиентов и серверов ZooKeeper.