Как настроить Apache Dolphinscheduler с PostgreSQL и Zookeeper на Linux

Как настроить Apache Dolphinscheduler с PostgreSQL и Zookeeper на Linux

31 июля 2025 г.

Эта статья направит вас пошаговым за шагом на том, как начать Apache Dolphinscheduler, используя внешний PostgreSQL и Zookeeper. Независимо от того, являетесь ли вы новичком или опытным разработчиком, вы можете легко выполнить эти шаги для завершения установки и конфигурации в среде Linux/Unix. В дополнение к стандартным этапам установки, мы также используем несколько советов по развертыванию кластеров, которые помогут вам легко масштабировать вашу систему.

Конечно, если вы сталкиваетесь с такими проблемами, как подключения к базе данных, подключения к зоопору или проблемы с запуском услуг, не волнуйтесь - этот урок включает в себя подробные шаги по устранению неполадок, которые помогут вам быстро их разрешить.

Системные требования

  • Операционная система: Linux/Unix (Centos 7+ или Ubuntu 16.04+ рекомендуется)
  • Java Environment: JDK 1.8+
  • База данных: PostgreSQL 9.6+
  • Распределенная координационная служба: Zookeeper 3.4.6+
  • Память: по крайней мере 4 ГБ рекомендуется
  • Дисковое пространство: по крайней мере 10 ГБ рекомендуется

Подготовка

  1. Установить и настроить PostgreSQL
# Install PostgreSQL (CentOS example)
sudo yum install -y postgresql-server postgresql-contrib

# Initialize the database
sudo postgresql-setup initdb

# Start the service
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Create DolphinScheduler database and user
sudo -u postgres psql -c "CREATE USER dolphinscheduler WITH PASSWORD 'yourpassword';"
sudo -u postgres psql -c "CREATE DATABASE dolphinscheduler OWNER dolphinscheduler;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE dolphinscheduler TO dolphinscheduler;"

# Modify pg_hba.conf
sudo vi /var/lib/pgsql/data/pg_hba.conf
# Add or modify the following line:
host    all             all             0.0.0.0/0               md5

# Modify postgresql.conf
sudo vi /var/lib/pgsql/data/postgresql.conf
# Change listen_addresses to:
listen_addresses = '*'

# Restart PostgreSQL
sudo systemctl restart postgresql
  1. Установить и настроить Zookeeper
# Download Zookeeper
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar -xzf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin /opt/zookeeper

# Configure Zookeeper
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# Set data directory and server configuration (if clustered)
dataDir=/opt/zookeeper/data
# No need to change server settings for standalone mode

# Create data directory
mkdir /opt/zookeeper/data

# Start Zookeeper
/opt/zookeeper/bin/zkServer.sh start

Установите и настройте Dolphinscheduler 3.1.9

  1. Скачать и извлечь
wget https://downloads.apache.org/dolphinscheduler/3.1.9/apache-dolphinscheduler-3.1.9-bin.tar.gz
tar -xzf apache-dolphinscheduler-3.1.9-bin.tar.gz
mv apache-dolphinscheduler-3.1.9-bin /opt/dolphinscheduler
  1. Изменить файлы конфигурации редактироватьcommon.properties
vi /opt/dolphinscheduler/conf/common.properties

Внесите следующие изменения:

# Database config
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://your-postgresql-server:5432/dolphinscheduler
spring.datasource.username=dolphinscheduler
spring.datasource.password=yourpassword

# Zookeeper config
registry.plugin.name=zookeeper
registry.plugin.type=zookeeper
registry.servers=your-zookeeper-server:2181

Необязательно: изменить переменные среды

vi /opt/dolphinscheduler/conf/env/dolphinscheduler_env.sh

Добавить или обновить переменные среды Java:

export JAVA_HOME=/usr/java/jdk1.8.0_291
export PATH=$JAVA_HOME/bin:$PATH
  1. Инициализировать базу данных
/opt/dolphinscheduler/script/create-dolphinscheduler.sh
  1. Start Services Start Master Server
/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server

Начать сервер работников

/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server

Start API -сервер

/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server

Начать сервер оповещения

/opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start alert-server

Проверьте установку

  1. Проверьте статус процесса:
ps -ef | grep dolphinscheduler
  1. Получите доступ к веб -интерфейсу: порт по умолчанию: 12345 Access URL:http: // your-server-ip: 12345/dolphinschedulerИмя пользователя по умолчанию/пароль: Admin/Dolphinscheduler123

Руководство по развертыванию кластера

Шаги развертывания режима кластера

Если вы хотите развернуть в режиме кластера, выполните следующие действия:

  1. Развернуть рабочие серверы на нескольких узлах

Требования узла

  • Развернуть рабочие серверы не менее 3 узлов (рекомендуется нечетное число)
  • Каждый узел должен иметь одинаковую версию пакета
  • Рекомендуемые спецификации сервера:
    • ЦП: 4 ядра или более
    • Память: 8 ГБ или более
    • Диск: 100 ГБ+ (настраиваем на основе объема данных)

Пример План развертывания

  • Узел 1 (первичный): мастер -сервер + работник сервер
    • IP: 192.168.1.101
    • Роль: мастер + работник
  • Узел 2 (рабочий): сервер работников
    • IP: 192.168.1.102
    • Роль: работник
  • Узел 3 (Рабочий): Сервер рабочего
    • IP: 192.168.1.103
    • Роль: работник

Установка примечания

  1. Запустите один и тот же сценарий установки на всех узлах
  2. Убедитесь, что пути установки согласованы между узлами
  3. Проверьте сетевое подключение между узлами (используйте Ping/Telnet)
  4. Настройкаregistry.servers

Подробные шаги конфигурации

  1. Редактироватьcommon.propertiesНа всех узлах
    • Путь файла:/opt/your_app/conf/common.properties
  2. Наборregistry.serversпо адресам кластера Zookeeper
  3. Пример формат:
registry.servers=zk1:2181,zk2:2181,zk3:2181

Проверка конфигурации

  1. Использоватьzkcli.shДля проверки конфигурации Zookeeper
./zkCli.sh -server zk1:2181
  1. Проверьте регистрацию узла:
ls /your_app/nodes
  1. Конфигурация синхронизации времени

Подробный план синхронизации времениВсе узлы должны поддерживать синхронизацию времени (в течение 1 секунды дрейфа). Рекомендуемые шаги:

Настройка NTP

  1. Установите NTP:
yum install -y ntp
  1. Синхронизирована с NTP -сервером (пример Aliyun):
ntpdate ntp.aliyun.com
  1. Установить Auto-Sync:
# Enable at startup
systemctl enable ntpd
# Start service
systemctl start ntpd
  1. Проверьте синхронизацию:
ntpq -p
date

Альтернативный вариант синхронизации времениЕсли внешний NTP -сервер недоступен, настройте внутренний сервер времени:

  1. Назначить один сервер как источник времени
  2. Синхронизируйте все другие узлы с этим сервером
  3. Пример конфигурации:
ntpdate 192.168.1.100

Время синхронизации

  • Рекомендуется настроить задание Crontab для периодической синхронизации:
*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1
  • Для систем, чувствительных к времени (например, финансам), поддерживайте дрейф <100 мс.

Общее устранение неполадок

Проблемы с подключением к базе данных

  1. PostgreSQL удаленный доступ к конфигурации
  • Проверятьpg_hba.confфайл и убедитесь, что он включает в себя:
host    all             all             0.0.0.0/0               md5
  • Перезапустить PostgreSQL после изменений
  1. Проверка полномочий
  • Проверка соединения с PSQL:
psql -h [host] -U [username] -d [database]
  • Убедиться, что пароль верен
  1. Проверка брандмауэра
  • Проверьте, открыт ли порт 5432:
firewall-cmd --list-all
  • При необходимости откройте порт:
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

Проблемы с подключением к зооперу

  1. Базовый тест подключения
  • Используйте Telnet:
telnet your-zookeeper-server 2181
  • Следует показать: «Подключено к вашему Zookeeper-Server»
  1. Проверка журнала
  • Посмотреть журналы Zookeeper:
tail -f /var/log/zookeeper/zookeeper.log
  • Общие проблемы:
    • Недостаточно дискового пространства
    • Низкое распределение памяти
    • Неправильная конфигурация кластера

Проблемы за стартап услуг

  1. Анализ журнала
  • Проверьте основной файл журнала:
tail -n 100 /opt/dolphinscheduler/logs/dolphinscheduler-api.log
  • Проверьте другие журналы компонентов:
/opt/dolphinscheduler/logs/
├── dolphinscheduler-alert-server.log
├── dolphinscheduler-api-server.log
├── dolphinscheduler-master-server.log
└── dolphinscheduler-worker-server.log
  1. Java Environment Check
  • Проверьте Java версию:
java -version
- Requirement: JDK 1.8+
  • Проверьте java_home:
echo $JAVA_HOME
  • Проверьте настройки памяти:
jmap -heap <pid>
  1. Проверка конфликта порта
  • Проверьте использование порта:
netstat -tunlp | grep [port]
  • Порты по умолчанию:
    • Мастер -сервер: 5678
    • Сервер рабочей силы: 1234
    • API -сервер: 12345


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE