前置任务1:互相免密登录
1、各个节点分别安装ssh: sudo apt-get install ssh
2、# 各个节点删除原来的
rm -rf ~/.ssh
#各个节点生成公钥和私钥,输入命令,提示直接按enter就行了
ssh-keygen -t rsa
cd ~/.ssh
就会发现多了如下文件: id_rsa 和 id_rsa.pub 分别是私钥和公钥。
3、各个节点执行如下命令:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
各个节点将公钥添加到.ssh/authorized_keys,这时就能在本机免密码登陆了
4、各个节点然后将id_rsa.pub文件复制到其他主机上,这里我使用的是主机名
scp /root/.ssh/id_rsa.pub root@P-SH1CRAWLERAPP02:/root/
5、在132节点上执行1、2、3,然后将id_rsa.pub的内容添加到132的authorized_keys文件中,完成之后就能在本机免密码登录132了
cat /root/id_rsa.pub >> ~/.ssh/authorized_keys
其他节点操作 4,5
前置任务2:配置hostname
10.xx.xxx.61 P-SH1CRAWLERAPP01
10.xx.xxx.62 P-SH1CRAWLERAPP02
10.xx.xxx.63 P-SH1CRAWLERAPP03
前置任务3:安装JDK
前置任务4:安装docker-mysql
# 分发jar包
cp mysql-connector-j-9.2.0.jar ./apache-dolphinscheduler-3.2.1-bin/api-server/libs/
cp mysql-connector-j-9.2.0.jar /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/alert-server/libs/
cp mysql-connector-j-9.2.0.jar /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/master-server/libs/
cp mysql-connector-j-9.2.0.jar /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/worker-server/libs/
cp mysql-connector-j-9.2.0.jar /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/tools/libs/
#docker-compose文件
version: '3'
services:
mysql:
# 镜像名
image: mysql:latest
# 容器名(以后的控制都通过这个)
container_name: mysql
# 重启策略
restart: always
environment:
# 时区上海
# TZ: Asia/Shanghai
# root 密码
MYSQL_ROOT_PASSWORD: Jmkx2022
# 映射端口
ports:
- 3306:3306
volumes:
- /data/mysql/mysql-datadir:/var/lib/mysql # 映射数据目录,宿主机:容器
- /data/mysql/conf.d:/etc/mysql/conf.d # 映射配置目录,宿主机:容器
- /data/mysql/mysql-log:/var/log/mysql #映射日志目录,宿主机:容器
- /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题,ro是read only的意思,就是只读。
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
在docker-mysql中
docker exec -it 0f21907666e6 /bin/bash
docker-compose -f docker-compose.yml up -d mysql
docker stop docker_id
账号密码
grant all privileges on *.* to 'root'@'%' identified by 'Jmkx2022' with option;
#设置远程连接
[root@hadoop_zxy dolphinscheduler-1.3.4]# mysql -uroot -p密码
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler123';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
mysql> CREATE USER 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler123';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost';
mysql> FLUSH PRIVILEGES;
初始化dolp的元数据,完成后去mysql查看表结构
sh /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/tools/bin/upgrade-schema.sh
前置任务5:安装zk
# 先改文件名 cp zoo_sample.cfg zoo.cfg
# vim文件 vim /data/zk/apache-zookeeper-3.8.4-bin/conf/zoo.cfg
dataDir=/data/zk/apache-zookeeper-3.8.4-bin/zdata
server.2=P-SH1CRAWLERAPP01:2888:3888
server.3=P-SH1CRAWLERAPP02:2888:3888
server.4=P-SH1CRAWLERAPP03:2888:3888
# cd /data/zk/apache-zookeeper-3.8.4-bin/bin
./zkServer.sh start
# 通过status查看启动状态。稍微有个等待时间
./zkServer.sh status
安装dolphinscheduler集群
1、vim $DS_HOME/bin/env/install_env.sh
#安装目录
#vim /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/bin/env/install_env.sh
#安装后目录
#vim /data/dolphinscheduler/bin/env/install_env.sh
# 将要部署任一DolphinScheduler服务的服务器主机名或ip列表
ips="P-SH1CRAWLERAPP01,P-SH1CRAWLERAPP02,P-SH1CRAWLERAPP03"
# ssh端口号
sshPort="22"
# master 所在主机名列表,必须是ips的子集
masters="P-SH1CRAWLERAPP01,P-SH1CRAWLERAPP02"
# worker主机名及队列,此处的ip必须在ips列表中
workers="P-SH1CRAWLERAPP01:default,P-SH1CRAWLERAPP02:default,P-SH1CRAWLERAPP03:default"
# 告警服务所在服务器主机名
alertServer="P-SH1CRAWLERAPP03"
# api服务所在服务器主机名
apiServers="P-SH1CRAWLERAPP01"
# DS 安装路径,如果不存在会创建
installPath="/data/dolphinscheduler/"
# 部署用户,任务执行服务是以sudo -u {linux-user} 切换不同Linux用户的方式来实现多租户运行作业,因此该用户必须有免密的sudo权限。
deployUser="root"
# 前文配置的所有节点的本地数据存储路径,需要确保部署用户拥有该目录的读写权限
dataBasedirPath="/data/dolphinscheduler/data"
# JAVA_HOME 路径
javaHome="/data/jdk/jdk1.8.0_171"
# apiServer的端口
apiServerPort="12345"
# 数据库类型
DATABASE_TYPE="mysql"
# 数据库 URL
SPRING_DATASOURCE_URL="jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8"
# 数据库用户名
SPRING_DATASOURCE_USERNAME="dolphinscheduler"
# 数据库密码
SPRING_DATASOURCE_PASSWORD="dolphinscheduler123"
# 注册中心插件名称,DS 通过注册中心来确保集群配置的一致性
registryPluginName="zookeeper"
# 注册中心地址,即 Zookeeper 集群的地址
registryServers="P-SH1CRAWLERAPP01:2181,P-SH1CRAWLERAPP02:2181,P-SH1CRAWLERAPP03:2181"
# DS 在 Zookeeper 的结点名称
registryNamespace="dolphinscheduler"
2、vim $DS_HOME/bin/env/dolphinscheduler_env.sh
#vim /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/bin/env/dolphinscheduler_env.sh #vim /data/dolphinscheduler/bin/env/dolphinscheduler_env.sh
# 修改JAVA_HOME
export JAVA_HOME="/data/jdk/jdk1.8.0_171"
# 修改数据库连接信息
export DATABASE="mysql"
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME="dolphinscheduler"
export SPRING_DATASOURCE_PASSWORD="dolphinscheduler123"
# 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}
# 修改zookeep连接地址
export REGISTRY_TYPE="zookeeper"
#export REGISTRY_ZOOKEEPER_CONNECT_STRING="P-SH1CRAWLERAPP01:2181,P-SH1CRAWLERAPP02:2181,P-SH1CRAWLERAPP03:2181"
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-P-SH1CRAWLERAPP01:2181,P-SH1CRAWLERAPP02:2181,P-SH1CRAWLERAPP03:2181}
3、master-server
#vi /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/master-server/conf/application.yaml
#vi /data/dolphinscheduler/master-server/conf/application.yaml
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: dolphinscheduler123
registry:
type: zookeeper
zookeeper:
namespace: dolphinscheduler
connect-string: P-SH1CRAWLERAPP01:2181,P-SH1CRAWLERAPP02:2181,P-SH1CRAWLERAPP03:2181
max-cpu-load-avg: 3
reserved-memory: 0.1
max-waiting-time: 150s
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: dolphinscheduler123
4、worker-server
#vi /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/worker-server/conf/application.yaml
#vi /data/dolphinscheduler/worker-server/conf/application.yaml
registry:
type: zookeeper
zookeeper:
namespace: dolphinscheduler2204
connect-string: P-SH1CRAWLERAPP01:2181,P-SH1CRAWLERAPP02:2181,P-SH1CRAWLERAPP03:2181
max-cpu-load-avg: 3
reserved-memory: 0.1
max-waiting-time: 150s
5、api-server
#vi /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/api-server/conf/application.yaml
#vi /data/dolphinscheduler/api-server/conf/application.yaml
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: dolphinscheduler123
registry:
type: zookeeper
zookeeper:
namespace: dolphinscheduler
connect-string: P-SH1CRAWLERAPP01:2181,P-SH1CRAWLERAPP02:2181,P-SH1CRAWLERAPP03:2181
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: dolphinscheduler123
6、alert-server
#vi /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/alert-server/conf/application.yaml
#vi /data/dolphinscheduler/alert-server/conf/application.yaml
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: dolphinscheduler123
registry:
type: zookeeper
zookeeper:
namespace: dolphinscheduler
connect-string: P-SH1CRAWLERAPP01:2181,P-SH1CRAWLERAPP02:2181,P-SH1CRAWLERAPP03:2181
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: dolphinscheduler123
7、tools
#vi /data/dolphinscheduler/apache-dolphinscheduler-3.2.2-bin/tools/conf/application.yaml
#vi /data/dolphinscheduler/tools/conf/application.yaml
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: dolphinscheduler123
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://P-SH1CRAWLERAPP01:3306/dolphinscheduler2204?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
初次安装
bash ./bin/install.sh
浏览器访问地址 http://masterIP:12345/dolphinscheduler/ui 即可登录系统 UI。默认的用户名和密码是 admin/dolphinscheduler123
后续的再启动、操作
切换去 cd /data
# 一键停止集群所有服务
bash ./bin/stop-all.sh
# 一键开启集群所有服务
bash ./bin/start-all.sh
# 启停 Master
bash ./bin/dolphinscheduler-daemon.sh stop master-server
bash ./bin/dolphinscheduler-daemon.sh start master-server
# 启停 Worker
bash ./bin/dolphinscheduler-daemon.sh start worker-server
bash ./bin/dolphinscheduler-daemon.sh stop worker-server
# 启停 Api
bash ./bin/dolphinscheduler-daemon.sh start api-server
bash ./bin/dolphinscheduler-daemon.sh stop api-server
# 启停 Alert
bash ./bin/dolphinscheduler-daemon.sh start alert-server
bash ./bin/dolphinscheduler-daemon.sh stop alert-server