CentOS7.9 DolphinScheduler3.1.9集群部署
环境准备
- Python 2.0+
 - Java 1.8.0+
 - Mysql
 - ZooKeeper
 - Datax
 
文件准备
cd /opt
ll
# apache-dolphinscheduler-3.1.9-bin.tar.gz
配置节点信息
echo '' >> /etc/host
echo '192.168.100.10 node0' >> /etc/host
echo '192.168.100.11 node1' >> /etc/host
echo '192.168.100.12 node2' >> /etc/host
echo '192.168.100.13 node3' >> /etc/host
echo '' >> /etc/host
创建用户
useradd dolphinscheduler
echo "dolphinscheduler" | passwd --stdin dolphinscheduler
设置dolphinscheduler用户免密sudo
sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults    requirett/g' /etc/sudoers
设置dolphinscheduler用户免密SSH登录
使用dolphinscheduler用户可以免密ssh登录集群中所有节点,所以每个节点都要执行下述操作
su dolphinscheduler
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id dolphinscheduler@node0
ssh-copy-id dolphinscheduler@node1
ssh-copy-id dolphinscheduler@node2
ssh-copy-id dolphinscheduler@node3
解压安装包
tar -zxvf /opt/apache-dolphinscheduler-3.1.9-bin.tar.gz
添加Mysql-Conector驱动
rm -rf /opt/apache-dolphinscheduler-3.1.9-bin/standalone-server/libs/mysql-connector-java-8.0.16.jar
rm -rf /opt/apache-dolphinscheduler-3.1.9-bin/alert-server/libs/mysql-connector-java-8.0.16.jar
rm -rf /opt/apache-dolphinscheduler-3.1.9-bin/api-server/libs/mysql-connector-java-8.0.16.jar
rm -rf /opt/apache-dolphinscheduler-3.1.9-bin/master-server/libs/mysql-connector-java-8.0.16.jar
rm -rf /opt/apache-dolphinscheduler-3.1.9-bin/standalone-server/libs/mysql-connector-java-8.0.16.jar
rm -rf /opt/apache-dolphinscheduler-3.1.9-bin/tools/libs/mysql-connector-java-8.0.16.jar
rm -rf /opt/apache-dolphinscheduler-3.1.9-bin/worker-server/libs/mysql-connector-java-8.0.16.jar
cp /opt/mysql-connector-java-8.0.16.jar /opt/apache-dolphinscheduler-3.1.9-bin/alert-server/libs/mysql-connector-java-8.0.16.jar
cp /opt/mysql-connector-java-8.0.16.jar /opt/apache-dolphinscheduler-3.1.9-bin/api-server/libs/mysql-connector-java-8.0.16.jar
cp /opt/mysql-connector-java-8.0.16.jar /opt/apache-dolphinscheduler-3.1.9-bin/master-server/libs/mysql-connector-java-8.0.16.jar
cp /opt/mysql-connector-java-8.0.16.jar /opt/apache-dolphinscheduler-3.1.9-bin/standalone-server/libs/mysql-connector-java-8.0.16.jar
cp /opt/mysql-connector-java-8.0.16.jar /opt/apache-dolphinscheduler-3.1.9-bin/tools/libs/mysql-connector-java-8.0.16.jar
cp /opt/mysql-connector-java-8.0.16.jar /opt/apache-dolphinscheduler-3.1.9-bin/worker-server/libs/mysql-connector-java-8.0.16.jar
配置文件修改
dolphinscheduler_env.sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# JAVA_HOME, will use it to start DolphinScheduler server
# export JAVA_HOME=${JAVA_HOME:-/opt/java/openjdk}  原模板内容
export JAVA_HOME=/opt/pahtUserDefinition/java/jre
# Database related configuration, set database type, username and password
# export DATABASE=${DATABASE:-postgresql} 原模板内容
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
# export SPRING_DATASOURCE_URL 原模板内容
export SPRING_DATASOURCE_URL="jdbc:mysql://node0:3306/dolphinscheduler?serverTimezone=UTC&useTimezone=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"
# export SPRING_DATASOURCE_USERNAME 原模板内容
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
# export SPRING_DATASOURCE_PASSWORD 原模板内容
export SPRING_DATASOURCE_PASSWORD=dolphinscheduler
# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}
# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-localhost:2181}
# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
# export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python} 原模板内容
export PYTHON_HOME=${PYTHON_HOME:-/usr/bin/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
# export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax} 原模板内容
export DATAX_HOME=${DATAX_HOME:-/opt/datax}
export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/opt/soft/seatunnel}
export CHUNJUN_HOME=${CHUNJUN_HOME:-/opt/soft/chunjun}
export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATH
install_env.sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
# mode, just write a pseudo-distributed hostname
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
ips=${ips:-"node0,node1,node2,node3"}
# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
# modify it if you use different ssh port
sshPort=${sshPort:-"22"}
# A comma separated list of machine hostname or IP would be installed Master server, it
# must be a subset of configuration `ips`.
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
masters=${masters:-"node0"}
# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
workers=${workers:-"node0:default,node1:default,node2:default,node3:default"}
# A comma separated list of machine hostname or IP would be installed Alert server, it
# must be a subset of configuration `ips`.
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
alertServer=${alertServer:-"node0"}
# A comma separated list of machine hostname or IP would be installed API server, it
# must be a subset of configuration `ips`.
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
apiServers=${apiServers:-"node0"}
# The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
# Do not set this configuration same as the current path (pwd). Do not add quotes to it if you using related path.
installPath=${installPath:-"/opt/dolphinscheduler"}
# The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
# to be created by this user
deployUser=${deployUser:-"dolphinscheduler"}
# The root of zookeeper, for now DolphinScheduler default registry server is zookeeper.
zkRoot=${zkRoot:-"/dolphinscheduler"}
刷新安装包文件权限
chown -R dolphinscheduler:dolphinscheduler /opt/apache-dolphinscheduler-3.1.9-bin
初始化数据库
登录mysql数据库
mysql -uroot -proot2024
创建Database并为相关用户赋权
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
FLUSH PRIVILEGES;
exit;
运行预设脚本初始化数据库
bash /opt/apache-dolphinscheduler-3.1.9-bin/tools/bin/upgrade-schema.sh
放行端口
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=1234/tcp --permanent
firewall-cmd --zone=public --add-port=12345/tcp --permanent
service firewalld restart
执行install.sh 安装dolphinscheduler
su dolphinscheduler
sh /opt/apache-dolphinscheduler-3.1.9-bin/bin/install.sh
添加Oracle连接驱动
rm -rf /dolphinscheduler/standalone-server/libs/standalone-server/bin/ojdbc5.jar
rm -rf /dolphinscheduler/alert-server/bin/ojdbc5.jar
rm -rf /dolphinscheduler/api-server/bin/ojdbc5.jar
rm -rf /dolphinscheduler/master-server/bin/ojdbc5.jar
rm -rf /dolphinscheduler/standalone-server/bin/ojdbc5.jar
rm -rf /dolphinscheduler/tools/bin/ojdbc5.jar
rm -rf /dolphinscheduler/worker-server/bin/ojdbc5.jar
cp /opt/ojdbc5.jar /dolphinscheduler/alert-server/bin/ojdbc5.jar
cp /opt/ojdbc5.jar /dolphinscheduler/api-server/bin/ojdbc5.jar
cp /opt/ojdbc5.jar /dolphinscheduler/master-server/bin/ojdbc5.jar
cp /opt/ojdbc5.jar /dolphinscheduler/standalone-server/bin/ojdbc5.jar
cp /opt/ojdbc5.jar /dolphinscheduler/tools/bin/ojdbc5.jar
cp /opt/ojdbc5.jar /dolphinscheduler/worker-server/bin/ojdbc5.jar
 
rm -rf /dolphinscheduler/standalone-server/libs/standalone-server/bin/ojdbc8.jar
rm -rf /dolphinscheduler/alert-server/bin/ojdbc8.jar
rm -rf /dolphinscheduler/api-server/bin/ojdbc8.jar
rm -rf /dolphinscheduler/master-server/bin/ojdbc8.jar
rm -rf /dolphinscheduler/standalone-server/bin/ojdbc8.jar
rm -rf /dolphinscheduler/tools/bin/ojdbc8.jar
rm -rf /dolphinscheduler/worker-server/bin/ojdbc8.jar
cp /opt/ojdbc8.jar /dolphinscheduler/alert-server/bin/ojdbc8.jar
cp /opt/ojdbc8.jar /dolphinscheduler/api-server/bin/ojdbc8.jar
cp /opt/ojdbc8.jar /dolphinscheduler/master-server/bin/ojdbc8.jar
cp /opt/ojdbc8.jar /dolphinscheduler/standalone-server/bin/ojdbc8.jar
cp /opt/ojdbc8.jar /dolphinscheduler/tools/bin/ojdbc8.jar
cp /opt/ojdbc8.jar /dolphinscheduler/worker-server/bin/ojdbc8.jar
 
chown -R dolphinscheduler:dolphinscheduler /opt/dolphinscheduler
设置并发及内存告警
sed -i 's/exec-threads: 100/exec-threads: 20/g' /opt/dolphinscheduler/alert-server/conf/application.yaml
sed -i 's/exec-threads: 100/exec-threads: 20/g' /opt/dolphinscheduler/api-server/conf/application.yaml
sed -i 's/exec-threads: 100/exec-threads: 20/g' /opt/dolphinscheduler/master-server/conf/application.yaml
sed -i 's/exec-threads: 100/exec-threads: 20/g' /opt/dolphinscheduler/worker-server/conf/application.yaml
sed -i 's/reserved-memory: 0.3/reserved-memory: 1/g' /opt/dolphinscheduler/alert-server/conf/application.yaml
sed -i 's/reserved-memory: 0.3/reserved-memory: 1/g' /opt/dolphinscheduler/api-server/conf/application.yaml
sed -i 's/reserved-memory: 0.3/reserved-memory: 1/g' /opt/dolphinscheduler/master-server/conf/application.yaml
sed -i 's/reserved-memory: 0.3/reserved-memory: 1/g' /opt/dolphinscheduler/worker-server/conf/application.yaml
Sping漏洞修复
sed -i 'management:/cmanagement:\
  server:\
    port: -1' /opt/dolphinscheduler/alert-server/conf/application.yaml
sed -i 'management:/cmanagement:\
  server:\
    port: -1' /opt/dolphinscheduler/api-server/conf/application.yaml
sed -i 'management:/cmanagement:\
  server:\
    port: -1' /opt/dolphinscheduler/master-server/conf/application.yaml
sed -i 'management:/cmanagement:\
  server:\
    port: -1' opt/dolphinscheduler/worker-server/conf/application.yaml
指定Zookeeper用户密码
sed -i 's/~/username:passwd/g' /opt/dolphinscheduler/alert-server/conf/application.yaml
sed -i 's/~/username:passwd/g' /opt/dolphinscheduler/api-server/conf/application.yaml
sed -i 's/~/username:passwd/g' /opt/dolphinscheduler/master-server/conf/application.yaml
sed -i 's/~/username:passwd/g' /opt/dolphinscheduler/worker-server/conf/application.yaml
                    
                
                
            
        
浙公网安备 33010602011771号