DolphinScheduler的安装与使用

一、DolphinScheduler基础知识

1、初识DolphinScheduler

Apache DolphinScheduler 是一个分布式、易扩展的可视化 DAG 工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。

2、DolphinScheduler的核心架构

1676948034306128.png

DolphinScheduler 的主要角色如下:

  • MasterServer:采用分布式无中心设计理念,MasterServer 主要负责 DAG 任务切分、任务提交、任务监控,并同时监听其它 MasterServer 和 WorkerServer 的健康状态。

  • WorkerServer:也采用分布式无中心设计理念,WorkerServer 主要负责任务的执行和提供日志服务

  • ZooKeeper 服务:系统中的 MasterServer 和 WorkerServer 节点都通过 ZooKeeper 来进行集群管理和容错

  • Alert 服务:提供告警相关服务

  • API 接口层:主要负责处理前端 UI 层的请求。

  • UI:系统的前端页面,提供系统的各种可视化操作界面。


二、DolphinScheduler集群的搭建

单机模式(standalone):所有服务均集中于一个 StandaloneServer 进程中,并且其中内置了注册中心 Zookeeper 和数据库 H2。只需配置 JDK 环境,就可一键启动DolphinScheduler,快速体验其功能。(安装:略)

1、集群规划:

主机名(ip) 配置 角色
hadoop102(192.168.56.102) 3核6G master、worker(mysql、zookeeper)
hadoop103(192.168.56.103) 3核3G worker(zookeeper)
hadoop104(192.168.56.104) 3核3G worker(zookeeper)

提前修改好hosts以及ssh访问:

[root@hadoop102 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.1.1 hadoop102 hadoop102

192.168.56.102 hadoop102
192.168.56.103 hadoop103
192.168.56.104 hadoop104

2、前置准备工作:

(1)三台节点均需部署 JDK(1.8+),并配置相关环境变量。

      JDK环境快速搭建教程

(2)需部署数据库,支持 MySQL(5.7+)或者 PostgreSQL(8.2.15+)。 

      Mysql快速安装教程

(3)需部署 Zookeeper(3.4.6+)。 

      Zookeeper快速安装教程

(4)三台节点均需安装进程树分析工具 psmisc。

sudo yum install -y psmisc

3、下载并解压DolphineScheculer安装包:

下载地址(2.0.5版本):

https://dolphinscheduler.apache.org/zh-cn/download/2.0.5

除了DolphinScheduler的安装包,我们还需要下载mysql的驱动jar包!

上传下载好的安装包到hadoop102的 /opt/software 目录下:

[root@hadoop102 software]# pwd
/opt/software
[root@hadoop102 software]# ls
apache-dolphinscheduler-2.0.5-bin.tar.gz  mysql-connector-java-8.0.16.jar

# 解压到当前目录(注:解压目录并非最终的安装目录,需要在配置文件中指定安装目录)
[root@hadoop102 software]# tar -zxvf apache-dolphinscheduler-2.0.5-bin.tar.gz

4、创建DolphinScheduler的元数据库及数据库用户:

DolphinScheduler 元数据存储在关系型数据库中,故需创建相应的数据库和用户。

(1)创建数据库:

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

(2)创建数据库用户:

CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';

(3)赋予用户相应权限:

GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';

flush privileges;

5、配置一键部署脚本(最关键步骤):

修改解压目录下的 conf/config 目录下的 install_config.conf 文件

[root@hadoop102 software]# vim /opt/software/apache-dolphinscheduler-2.0.5-bin/conf/config/install_config.conf

修改内容如下:

## 使用 :set nu 显示行号

# 第25行:指定哪些节点需要安装DS
ips="hadoop102,hadoop103,hadoop104"

# 第34行:指定master节点
masters="hadoop102"

# 第39行:指定worker几点及所属worker组(用于对worker节点分组管理)
workers="hadoop102:default,hadoop103:default,hadoop104:default"

# 第44行:告警服务所在的服务器主机名
alertServer="hadoop102"

# 第49行:api服务所在的服务器主机名
apiServers="hadoop102"

# 第54行:可以通过python脚本快速批量生成工作流,可以保留默认值,也可以用 # 注释(我用不着)
# pythonGatewayServers="hadoop102"

# 第58行:DS的安装目录(重要,确保改目录DS有权限操作)
installPath="/mydata/dolphinscheduler"

# 第63行:DS部署时候需要用的用户,需要具备sudo权限,且拥有ssh免密访问权限,我直接使用root省事
deployUser="root"

# 第77行:JAVA_HOME路径
javaHome="/usr/local/jdk8"

# 第84行:数据库类型(mysql)
DATABASE_TYPE=${DATABASE_TYPE:-"mysql"}

# 第88行:mysql连接的url
SPRING_DATASOURCE_URL="jdbc:mysql://hadoop102:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8"

# 第91行:mysql数据库的用户名
SPRING_DATASOURCE_USERNAME="dolphinscheduler"

# 第94行:mysql数据库的密码
SPRING_DATASOURCE_PASSWORD="dolphinscheduler"

# 第100行:注册中心的类型(zookeeper)
registryPluginName="zookeeper"

# 第103行:zookeeper服务的地址
registryServers="hadoop102:2181,hadoop103:2181,hadoop104:2181"

# 第106行:DS在zookeeper根目录下的注册名称
registryNamespace="dolphinscheduler"

# 第115行:资源存储类型(文件资源)
resourceStorageType="HDFS"

# 第118行:资源文件上传路径
resourceUploadPath="/dolphinscheduler"

# 第123行:默认文件系统(HDFS)
defaultFS="hdfs://hadoop102:8020"

# 第131行:Yarn的Resource Manager的端口号
resourceManagerHttpAddressPort="8088"

# 第134行:Yarn RM 高可用 ip,若未启用 RM 高可用,则将该值置空
yarnHaIps=

# 第137行:Yarn的部署ip
singleYarnIp="hadoop103"

# 第141行:HDFS的超级用户,谁启动的HDFS,谁就是超级用户
hdfsRootUser="root"

6、初始化数据库:

(1)拷贝Mysql驱动到DolphinScheduler的解压目录下的lib中,要求使用 MySQL JDBC Driver 8.0.16

[root@hadoop102 apache-dolphinscheduler-2.0.5-bin]# cp /opt/software/mysql-connector-java-8.0.16.jar lib/

(2)执行数据库初始化脚本

数据库初始化脚本位于 DolphinScheduler 解 压 目 录 下 的 script 目 录 中 , 即/opt/software/ds/apache-dolphinscheduler-2.0.5-bin/script/

[root@hadoop102 apache-dolphinscheduler-2.0.5-bin]# script/create-dolphinscheduler.sh

脚本执行成功后,我们就可以看到mysql数据库中对应的表了:

1676960411989768.png

7、一键部署DolphinScheduler集群

(1)确保zookeeper处于正常运行状态:

[root@hadoop102 apache-dolphinscheduler-2.0.5-bin]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

(2)通过脚本一键部署并启动 DolphinScheduler:

[root@hadoop102 apache-dolphinscheduler-2.0.5-bin]# ./install.sh

(3)查看三台机器上运行的程序:

[root@hadoop102 ~]# jps
25089 WorkerServer (WorkerServer)
25170 AlertServer (AlertServer)
25126 LoggerServer(LoggerServer)
2265 QuorumPeerMain 
25209 ApiApplicationServer (APIServer)
25052 MasterServer (MasterServer)

[root@hadoop103 ~]# jps
25865 WorkerServer
25901 LoggerServer
25278 QuorumPeerMain

[root@hadoop104 ~]# jps
25874 LoggerServer
3620 QuorumPeerMain
25838 WorkerServer

8、访问DolphinScheduler UI页面:

http://192.168.56.102:12345/dolphinscheduler

默认账号密码:admin / dolphinscheduler123

1676965216711757.png

9、DolphinScheduler的启停命令:

DolphinScheduler 的启停脚本均位于其安装目录的 bin 目录下,注意要区分真正的安装目录和解压目录的区别:

[root@hadoop102 dolphinscheduler]# cd /mydata/dolphinscheduler/
[root@hadoop102 dolphinscheduler]# ls
bin  conf  install.sh  lib  logs  pid  script  sql  ui

(1)一键启停所有服务

./bin/start-all.sh
./bin/stop-all.sh

## 查看所有服务的状态:
[root@hadoop102 dolphinscheduler]# ./bin/status-all.sh 

====================== dolphinscheduler server config =============================
1.dolphinscheduler server node config hosts:[  hadoop102,hadoop103,hadoop104  ]
2.master server node config hosts:[  hadoop102  ]
3.worker server node config hosts:[  hadoop102:default,hadoop103:default,hadoop104:default  ]
4.alert server node config hosts:[  hadoop102  ]
5.api server node config hosts:[  hadoop102  ]

====================== dolphinscheduler server status =============================
node server state

hadoop102  Begin status master-server......
master-server  [  RUNNING  ]
End status master-server.
hadoop102  Begin status worker-server......
worker-server  [  RUNNING  ]
End status worker-server.
hadoop102  Begin status logger-server......
logger-server  [  RUNNING  ]
End status logger-server.
hadoop103  Begin status worker-server......
worker-server  [  RUNNING  ]
End status worker-server.
hadoop103  Begin status logger-server......
logger-server  [  RUNNING  ]
End status logger-server.
hadoop104  Begin status worker-server......
worker-server  [  RUNNING  ]
End status worker-server.
hadoop104  Begin status logger-server......
logger-server  [  RUNNING  ]
End status logger-server.
hadoop102  Begin status alert-server......
alert-server  [  RUNNING  ]
End status alert-server.
hadoop102  Begin status api-server......
api-server  [  RUNNING  ]
End status api-server.

注意同 Hadoop 的启停脚本进行区分。

(2)启停 Master

./bin/dolphinscheduler-daemon.sh start master-server
./bin/dolphinscheduler-daemon.sh stop master-server

(3)启停 Worker

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

(4)启停 Api

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

(5)启停 Logger

./bin/dolphinscheduler-daemon.sh start logger-server
./bin/dolphinscheduler-daemon.sh stop logger-server

(6)启停 Alert

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

10、监控DS节点运行状态:

Master节点:

1676968681575547.png

Worker节点:

1676968661443364.png

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐