Cài đặt cụm DolphinScheduler trên môi trường phân tán

Đây là hướng dẫn triển khai DolphinScheduler — một nền tảng lập lịch tác vụ phân tán mã nguồn mở — trên ba nút máy chủ Linux. Quy trình bao gồm: thiết lập kiến trúc cụm, cấu hình xác thực không mật khẩu giữa các nút, chuẩn bị môi trường phụ thuộc (JDK, MySQL, ZooKeeper), cấu hình dịch vụ và khởi động hệ thống.

1. Kiến trúc cụm đề xuất

Địa chỉ IP Tên máy chủ Vai trò triển khai
192.168.198.101 node-master master, worker, api-server, mysql, zookeeper
192.168.198.102 node-worker-a master, worker, zookeeper
192.168.198.103 node-worker-b worker, alert-server, zookeeper

2. Thiết lập xác thực SSH không mật khẩu

Thực hiện tuần tự trên từng nút để đảm bảo người dùng dolphin có thể truy cập qua SSH mà không cần nhập mật khẩu:

# Trên mỗi máy chủ: tạo khóa RSA và phân phối công khai
sudo useradd -m -s /bin/bash dolphin
echo "dolphin123" | sudo passwd --stdin dolphin
sudo usermod -aG wheel dolphin
sudo sed -i '/^%wheel.*NOPASSWD:/!s/^%wheel\s\+ALL=(ALL)\s\+ALL$/&\n%wheel ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers

# Chuyển sang người dùng dolphin
sudo -u dolphin -i bash <<'EOF'
mkdir -p ~/.ssh && chmod 700 ~/.ssh
ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
for host in node-master node-worker-a node-worker-b; do
  ssh-copy-id -o StrictHostKeyChecking=no "$host"
done
EOF

3. Cài đặt thành phần phụ thuộc

3.1 JDK 1.8+

sudo mkdir -p /opt/jdk
sudo tar -xzf /tmp/jdk-8u401-linux-x64.tar.gz -C /opt/jdk/
echo 'export JAVA_HOME=/opt/jdk/jdk1.8.0_401' | sudo tee -a /etc/profile.d/java.sh
echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/profile.d/java.sh
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

3.2 MySQL 5.7+ (chỉ trên node-master)

Tạo cơ sở dữ liệu và tài khoản phục vụ DolphinScheduler:

mysql -uroot -proot -e "
SET GLOBAL validate_password.length = 4;
SET GLOBAL validate_password.policy = LOW;
CREATE DATABASE dolphinscheduler CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ds_user'@'%' IDENTIFIED BY 'ds_pass_2024';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds_user'@'%';
FLUSH PRIVILEGES;"

3.3 ZooKeeper 3.8.1 (cụm 3 nút)

Trên mỗi nút, thực hiện:

sudo mkdir -p /opt/zk/data /opt/zk/logs
wget -qO- https://archive.apache.org/dist/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz | sudo tar -xzf - -C /opt/zk/
sudo cp /opt/zk/apache-zookeeper-3.8.1-bin/conf/zoo_sample.cfg /opt/zk/apache-zookeeper-3.8.1-bin/conf/zoo.cfg

# Cập nhật cấu hình chung
sudo sed -i 's|^dataDir=.*|dataDir=/opt/zk/data|' /opt/zk/apache-zookeeper-3.8.1-bin/conf/zoo.cfg
sudo sed -i 's|^clientPort=.*|clientPort=2181|' /opt/zk/apache-zookeeper-3.8.1-bin/conf/zoo.cfg
sudo sed -i '$a\server.1=node-master:2888:3888\nserver.2=node-worker-a:2888:3888\nserver.3=node-worker-b:2888:3888' /opt/zk/apache-zookeeper-3.8.1-bin/conf/zoo.cfg
sudo sed -i '$a\admin.serverPort=8080' /opt/zk/apache-zookeeper-3.8.1-bin/conf/zoo.cfg

# Đặt myid tương ứng với từng nút
echo "1" | sudo tee /opt/zk/data/myid  # trên node-master
echo "2" | sudo tee /opt/zk/data/myid  # trên node-worker-a
echo "3" | sudo tee /opt/zk/data/myid  # trên node-worker-b

# Khởi động dịch vụ
/opt/zk/apache-zookeeper-3.8.1-bin/bin/zkServer.sh start

4. Triển khai DolphinScheduler 3.1.4

4.1 Tải và giải nén

cd /tmp
wget --no-check-certificate https://archive.apache.org/dist/dolphinscheduler/3.1.4/apache-dolphinscheduler-3.1.4-bin.tar.gz
sudo mkdir -p /opt/dolphinscheduler
sudo tar -xzf apache-dolphinscheduler-3.1.4-bin.tar.gz -C /opt/dolphinscheduler/

4.2 Cấu hình môi trường

Sửa file /opt/dolphinscheduler/apache-dolphinscheduler-3.1.4-bin/bin/env/install_env.sh:

ips="node-master,node-worker-a,node-worker-b"
sshPort="22"
masters="node-master,node-worker-a"
workers="node-master:default,node-worker-a:default,node-worker-b:default"
alertServer="node-worker-b"
apiServers="node-master"
installPath="/opt/dolphinscheduler/dolphinscheduler"
deployUser="dolphin"
zkRoot="/dolphinscheduler"

Sửa /opt/dolphinscheduler/apache-dolphinscheduler-3.1.4-bin/bin/env/dolphinscheduler_env.sh:

export JAVA_HOME=/opt/jdk/jdk1.8.0_401
export DATABASE=mysql
export SPRING_PROFILES_ACTIVE=mysql
export SPRING_DATASOURCE_URL="jdbc:mysql://node-master:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"
export SPRING_DATASOURCE_USERNAME="ds_user"
export SPRING_DATASOURCE_PASSWORD="ds_pass_2024"
export REGISTRY_TYPE=zookeeper
export REGISTRY_ZOOKEEPER_CONNECT_STRING="node-master:2181,node-worker-a:2181,node-worker-b:2181"

4.3 Sao chép trình điều khiển JDBC và thư viện hỗ trợ

cd /opt/dolphinscheduler/apache-dolphinscheduler-3.1.4-bin
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.33/mysql-connector-java-8.0.33.jar
cp mysql-connector-java-8.0.33.jar {worker-server,api-server,alert-server,master-server,tools,standalone-server}/libs/

wget https://repo1.maven.org/maven2/commons-cli/commons-cli/1.5.0/commons-cli-1.5.0.jar
cp commons-cli-1.5.0.jar {worker-server,api-server,alert-server,master-server,tools}/libs/

4.4 Khởi tạo lược đồ cơ sở dữ liệu

cd /opt/dolphinscheduler/apache-dolphinscheduler-3.1.4-bin
bash tools/bin/upgrade-schema.sh

4.5 Phân quyền và triển khai

sudo chown -R dolphin:dolphin /opt/dolphinscheduler/apache-dolphinscheduler-3.1.4-bin
sudo -u dolphin -i bash -c 'cd /opt/dolphinscheduler/apache-dolphinscheduler-3.1.4-bin && bash ./bin/install.sh'

5. Kiểm tra và vận hành

  • Truy cập giao diện web tại: http://node-master:12345/dolphinscheduler/ui
  • Tài khoản mặc định: admin / dolphinscheduler123
  • Quản lý dịch vụ:
    • Bắt đầu toàn bộ cụm: ./bin/start-all.sh
    • Dừng toàn bộ cụm: ./bin/stop-all.sh
    • Khởi động riêng lẻ: ./bin/dolphinscheduler-daemon.sh start [master-server|worker-server|api-server|alert-server]

Thẻ: dolphinscheduler zookeeper mysql Java linux

Đăng vào ngày 11 tháng 7 lúc 02:39