Настройка 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:

  1. На странице Clusters выберите нужный кластер.

  2. Перейдите на вкладку Services и нажмите на ZooKeeper.

  3. Найдите нужное свойство на странице конфигурации сервиса или странице Components. Дополнительные свойства можно отобразить, выключив опцию Show advanced.

  4. Внесите необходимые изменения и нажмите Save.

  5. В раскрывающемся меню Actions выберите Restart, убедитесь, что для параметра Apply configs from ADCM установлено значение true, и нажмите Run.

Рекомендации

Распространенные ошибки в конфигурации ZooKeeper, а также некоторые дополнительные настройки, которые могут улучшить производительность кластера:

  • Если с одним сервером ZooKeeper взаимодействует множество клиентов, использование опции chroot при подключении может упростить их работу. Эта опция позволяет выполнять команды, интерпретируя все пути относительно корня (аналогично команде unix chroot). Пример строки подключения: 127.0.0.1:4545/app/a.

  • Чтобы избежать предупреждений fsync в логах ZooKeeper, настройте выделенный диск для директории dataLogDir. Для этого добавьте параметр dataLogDir в файл zoo.cfg.

  • Для повышения производительности поместите журнал транзакций (dataDir) на выделенное устройство. Если журнал транзакций находится на сервере с высокой нагрузкой, это отрицательно скажется на производительности сервера ZooKeeper.

  • Поддерживайте согласованность списка серверов для клиентов и серверов ZooKeeper.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней