DolphinScheduler安装部署并使用「详细」

Apache DolphinScheduler是一个分布式易扩展的可视化DAG工作流任务调度开源系统。解决数据研发ETL 错综复杂的依赖关系,不能直观监控任务健康状态等问题。DolphinScheduler以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作。具有如下特性:

简单易用

DAG监控界面,所有流程定义都是可视化,通过拖拽任务定制DAG,通过API方式与第三方系统对接, 一键部署

高可靠性

去中心化的多Master和多Worker, 自身支持HA功能, 采用任务队列来避免过载,不会造成机器卡死

丰富的使用场景

支持暂停恢复操作.支持多租户,更好的应对大数据的使用场景. 支持更多的任务类型,如 spark, hive, mr, python, sub_process, shell

高扩展性

支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线

本文讲解的是单机安装,并且使用,通过以下目录展开:

1、基础软件的安装

1.1 系统最小化安装系统基础设置

1.2 安装配置java

1.3 安装zookeeper

1.4 安装编译python3环境

1.5 安装mysql

1.6 安装datax

2、安装海豚dolphinscheduler系统调度

3、系统调度快速上手

4、项目案例

4.1 shell案例

4.2 python案例

1、基础软件的安装

主机名

系统

CPU

内存

磁盘

应用

Dolphinschedulerpro

Centos7.6

8

32

50G+500G

dolphinscheduler

需要安装的软件有: java,zookeeper,python3及相关依赖包,mysql ,datzx ,dolphinscheduler

1.1 系统安装最小化安装,可以看我之前的文章系统基础设置

编辑配置文件/etc/selinux/config,关闭selinux

SELINUX=disabled

编辑配置文件/etc/security/limits.conf,末尾添加:

* soft noproc 10240
* hard noproc 10240
* soft nofile 10240
* hard nofile 10240

防火墙策略设置

firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" port port=12345 protocol=tcp accept' --permanent
firewall-cmd --reload

1.2 安装配置java

下载JDK并解压到/usr/local

vi /etc/profile

###for jdk1.8 ###
JAVA_HOME=/usr/local/jdk1.8.0_241
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME JRE_HOME CLASSPATH

source /etc/profile //使配置文件生效

java –version //查看是否安装正确

1.3 安装zookeeper

编辑配置文件

DolphinScheduler安装部署并使用「详细」

将安装包解压到/usr/local/src/目录下

cd /usr/local/src/apache-zookeeper-3.6.2-bin/bin

./zkServer.sh start // 启动服务

netstat –natp | grep 2181

1.4 安装编译python3环境

yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
./configure --prefix=/usr/local/python3613 && make && make install
mv /usr/bin/python /usr/bin/python27
mv /usr/bin/pip /usr/bin/pip27
ln -sf /usr/local/python3613/bin/python3 /usr/bin/python
ln -sf /usr/local/python3613/bin/pip3 /usr/bin/pip
ln -sf /usr/local/python3613/bin/python3 /usr/bin/python3
ln -sf /usr/local/python3613/bin/pip3 /usr/bin/pip3
vi /usr/bin/yum //编辑,更改python2的运行环境
vi /usr/libexec/urlgrabber-ext-down //编辑,更改python2的运行环境
安装cx_oracle模块,连接oracle驱动
pip install cx_oracle -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
unzip instantclient-basic-linux.x64-11.2.0.4.0.zip //安装相关依赖库
mv instantclient_11_2 /usr/local/src/
echo /usr/local/src/instantclient_11_2 > /etc/ld.so.conf.d/oracle-instantclient.conf
ldconfig

1.5 安装mysql

将安装包解压到安装目录

./mysql_install_db --basedir=/usr/local/src/mysql --datadir=/home/mysqldata --user=mysql

编辑配置文件vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
[mysqld]
character-set-server=utf8
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
skip-name-resolve
max_allowed_packet=256M
#skip-grant-tables
datadir=/home/mysqldata
socket=/tmp/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

/etc/init.d/mysql restart //启动服务 ,密码默认在安装用户主目录下的文件.mysql_secret

DolphinScheduler安装部署并使用「详细」

用root用户登陆后,alter user 'root'@'localhost' identified by ‘passwd’

1.6 安装datax

tar xvf datax.tar.gz

mv datax /usr/local/src/

2、安装海豚dolphinscheduler系统调度

2.1 下载解压安装包

mkdir -p /opt/dolphinscheduler
cd /opt/dolphinscheduler
tar -zxvf apache-dolphinscheduler-1.3.6-bin.tar.gz -C /opt/dolphinscheduler
mv apache-dolphinscheduler-1.3.6-bin dolphinscheduler-bin

2.2 创建应用运行系统用户

useradd dolphinscheduler
echo "passwd" | passwd --stdin dolphinscheduler
sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers
sed -i 's/Defaults requirett/#Defaults requirett/g' /etc/sudoers
chown -R dolphinscheduler:dolphinscheduler /opt/dolphinscheduler/dolphinscheduler-bin

2.3 创建免密登陆

su - dolphinscheduler
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

2.4 数据库初始化

mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
mysql> flush privileges;

创建表和导入基础数据,编辑配置文件vi conf/datasource.properties

DolphinScheduler安装部署并使用「详细」

sh script/create-dolphinscheduler.sh //执行数据库导入脚本

2.5修改运行参数

DolphinScheduler安装部署并使用「详细」

sudo ln -s /opt/soft/java/bin/java /usr/bin/java

2.6 修改一键部署配置文件 conf/config/install_config.conf中的各参数,特别注意以下参数的配置

cat config/install_config.conf | grep -v '#'

dbtype="mysql"
dbhost="127.0.0.1:3306"
username="dolphinscheduler"
dbname="dolphinscheduler"
password="passwd"
zkQuorum="127.0.0.1:2181"
installPath="/usr/local/src/dolphinscheduler"
deployUser="dolphinscheduler"
mailServerHost="smtp.qq.com"
mailServerPort="587"
mailSender="969113439@qq.com"
mailUser="969113439@qq.com"
mailPassword="xxxxxxxxxx"
starttlsEnable="true"
sslEnable="false"
sslTrust="smtp.qq.com"
resourceStorageType="HDFS"
defaultFS="file:///home/dolphinschedulerdata"
yarnHaIps=""
singleYarnIp="yarnIp1"
resourceUploadPath="/home/dolphinschedulerdata"
hdfsRootUser="hdfs"
kerberosStartUp="false"
krb5ConfPath="$installPath/conf/krb5.conf"
keytabUserName="hdfs-mycluster@ESZ.COM"
keytabPath="$installPath/conf/hdfs.headless.keytab"
apiServerPort="12345"
ips="localhost"
sshPort="22"
masters="localhost"
workers="localhost:default"
alertServer="localhost"
apiServers="localhost"

创建安装目录

sudo mkdir –p /usr/local/src/dolphinscheduler
sudo chown -R dolphinscheduler:dolphinscheduler /usr/local/src/dolphinscheduler

2.7 一键部署

注意切换到部署部署用户dolphinscheduler,执行一键部署脚本

DolphinScheduler安装部署并使用「详细」

sh install.sh

使用命令jps ,如果正常,则会显示相关启动的服务

DolphinScheduler安装部署并使用「详细」

2.8 浏览器访问

http://IP:12345/dolphinscheduler/ui/view/login/index.html

user/passwd

3、系统调度快速上手

3.1管理员用户登录

http://ip:12345/dolphinscheduler

admin/passwd,默认账户密码(admin/ dolphinscheduler123)

DolphinScheduler安装部署并使用「详细」

3.2创建队列

DolphinScheduler安装部署并使用「详细」

3.3创建租户

DolphinScheduler安装部署并使用「详细」

3.4创建普通用户

DolphinScheduler安装部署并使用「详细」

3.5创建告警组实例

DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

3.6 使用创建用户登陆:

http://ip:12345/dolphinscheduler/ui/view/login/index.html

xiangmuyonghu01/passwd

3.7使用用户创建项目:命名项目名称

DolphinScheduler安装部署并使用「详细」

3.7点击进入项目

DolphinScheduler安装部署并使用「详细」

3.8创建2个脚本:

DolphinScheduler安装部署并使用「详细」

脚本内容shell01.sh

DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

脚本内容shell02.sh

DolphinScheduler安装部署并使用「详细」

服务器查看脚本内容:

DolphinScheduler安装部署并使用「详细」

3.9点击工作流定义->创建工作流定义->上线工作流定义

DolphinScheduler安装部署并使用「详细」

Shell01

DolphinScheduler安装部署并使用「详细」

Shell02

DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

3.9.1 运行工作流定义->点击工作流实例->点击工作流实例名称->双击任务节点->查看任务执行日志

DolphinScheduler安装部署并使用「详细」

系统时间如果不准确,修改,对应的系统调度日志时间也会取相应的时间。

DolphinScheduler安装部署并使用「详细」

运行实例的时候,可以实时查看下 输出的日志:

DolphinScheduler安装部署并使用「详细」

4、项目案例

4.1 shell案例

假设有4个脚本是顺序执行的:

DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

运行结果:

DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

4.2 python案例

【创建属于python的工作流】

创建一个pythonlog文件夹用来存放运行日志:

DolphinScheduler安装部署并使用「详细」

创建一个python项目:

DolphinScheduler安装部署并使用「详细」

创建属于该项目的工作流:

DolphinScheduler安装部署并使用「详细」

创建3个python脚本:

# -*- coding: utf-8 -*-
import os
logfile="/home/dolphinschedulerdata/xiangmuzuhu01/resources/pythonlog/python.log"
print(logfile)
with open(logfile,"a") as f:
	f.write("python001 .。。。。。。。。。。。。。
")
# -*- coding: utf-8 -*-
import os
logfile="/home/dolphinschedulerdata/xiangmuzuhu01/resources/pythonlog/python.log"
print(logfile)
with open(logfile,"a") as f:
	f.write("python02 .。。。。。。。。。。。。。
")

# -*- coding: utf-8 -*-
import os
logfile="/home/dolphinschedulerdata/xiangmuzuhu01/resources/pythonlog/python.log"
print(logfile)
with open(logfile,"a") as f:
	f.write("python03 .。。。。。。。。。。。。。
")
DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

工作流上线运行,实时查看是否执行:

DolphinScheduler安装部署并使用「详细」

数据源:

数据源的创建可以通过admin创建统一的,然后进行授权给其他用户。当然一般不同项目单独创建数据源可能是比较好管理和区分。

DolphinScheduler安装部署并使用「详细」

DolphinScheduler安装部署并使用「详细」

普通用户可以查看自己创建的和通过授权的数据源

DolphinScheduler安装部署并使用「详细」

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章