2021SC@SDUSC
目录
一、综述
DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
简单来说,DolphinScheduler是一个开源的大数据任务调度系统,能支持通过非常简单的拖拽操作构建ETL过程。
另外,DolphinScheduler是一个采用BS架构的开源项目,在本地运行需要使用Linux系统配置环境,启动master-server等五项服务,之后再在浏览器中输入地址:http://192.168.xx.xx:12345/dolphinscheduler 进入登录界面,(此处省略的是服务设置的ip地址)
再使用用户名密码:admin/dolphinscheduler123进行登录。
二、基础软件安装
官方说明:
- PostgreSQL (8.2.15+) or MySQL (5.7系列):两者任选其一即可,如 MySQL 则需要 JDBC Driver 5.1.47+
- JDK (1.8+):必装,请安装好后在/etc/profile下配置 JAVA_HOME 及 PATH 变量
- ZooKeeper (3.4.6+):必装
- pstree or psmisc:Mac OS必装pstree,Fedora/Red/Hat/CentOS/Ubuntu/Debian必装psmisc
- Hadoop (2.6+) or MinIO:选装,如果需要用到资源上传功能,针对单机可以选择本地文件目录作为上传文件夹(此操作不需要部署 Hadoop );当然也可以选择上传到 Hadoop or MinIO 集群上
注意:DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,仅会调用它们的 Client,用于运行对应的任务
笔者选择:
Mysql (5.5+) : 必装
JDK (1.8+) : 必装
ZooKeeper(3.4.6+) :必装
Hadoop(2.6+) :选装, 如果需要使用到资源上传功能,MapReduce任务提交则需要配置Hadoop(上传的资源文件目前保存在Hdfs上)
Hive(1.2.1) : 选装,hive任务提交需要安装
Spark(1.x,2.x) : 选装,Spark任务提交需要安装
PostgreSQL(8.2.15+) : 选装,PostgreSQL PostgreSQL存储过程需要安装
Node.js:必装
Maven:必装,最好 3.6 版本
psmisc:必装
笔者选择在windows系统中使用vmware运行Ubuntu版本Linux系统的虚拟机,并在虚拟机上完成项目环境的搭建。
①.安装mysql
1.下载mysql安装包到 /usr/local/ 目录
cd /usr/local/
wget https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
2.解压并删除原有压缩包,解压后重命名为mysql
tar -zxvf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
rm -rf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.45-linux-glibc2.12-x86_64/ mysql
3.添加mysql用户组和mysql用户,添加完使用groups mysql查看是否添加成功
groupadd mysql
useradd -r -g mysql mysql
groups mysql
4.修改mysql目录拥有者为刚建立的mysql用户
cd mysql/
chown -R mysql:mysql ./
5.MySQL 初始化
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
6.修改mysql目录拥有者为root用户,修改data目录拥有者为mysql
chown -R root:root ./ && chown -R mysql:mysql data
7.启动mysql ,修改root密码设为000000,成功登陆
./support-files/mysql.server start
./bin/mysqladmin -u root password '000000'
./bin/mysql -h127.0.0.1 -uroot -p000000
8. linux登陆成功之后,开启远程登陆,刷新权限
mysql> grant all privileges on *.* to root@'%' identified by '000000';
mysql> flush privileges;
坑:初始化mysql时报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
ubuntu默认软件包管理器不是yum,而是dpkg,网上搜到的yum install libaio* -y安装libaio库的方法不适用,而应该用sudo apt-get install net-tools
②安装jdk
1.检查是否已安装过jdk
java -version
报错Command 'java' not found, but can be installed with:
证明没有安装
2.更新软件包列表:
sudo apt-get update
3.安装openjdk-8-jdk:
sudo apt-get install openjdk-8-jdk
4.查看java版本,看看是否安装成功:
java -version
报:
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
证明安装成功
③安装ZooKeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。想要安装zookeeper,必须先在linux中安装好jdk。
1.在 /usr/local目录下下载zookeeper安装包
cd /usr/local
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2.解压
tar zxvf zookeeper-3.4.9.tar.gz
3.修改配置
cd zookeeper-3.4.9
cp conf/zoo_sample.cfg conf/zoo.cfg
vim conf/zoo.cfg
按下i进入插入模式
修改存储目录:
dataDir=/opt/zookeeper/zkdata
输入:wq保存并退出
4.启动
cd bin/
./zkServer.sh start
报:
ZooKeeper JMX enabled by default
Using config: /usr/local/mysql/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
启动成功
④安装Node.js
1.下载并解压
cd /usr/local
wget https://nodejs.org/dist/v12.18.1/node-v12.18.1-linux-x64.tar.xz
tar xf node-v12.18.1-linux-x64.tar.xz
cd node-v12.18.1-linux-x64
2.配置前做好备份,防止修改时出问题
cp /etc/profile /etc/profile.bak
3.配置
vim /etc/profile
进入配置文件
在最下面添加
export PATH=$PATH:/root/node-v12.18.1-linux-x64/bin
标注bin 目录的路径
4.使配置生效
source /etc/profile
5.检验
node -v
6.提示未安装完成,输入apt install nodejs完成安装
apt install nodejs
7.再次检验
node -v
显示
安装成功
⑤安装maven
1.官网下载
2.上传到linux /usr/local
3.解压
tar -zxvf apache-maven-3.8.2-bin.tar.gz
4.配置环境变量
vi /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.8.2
export PATH=$MAVEN_HOME/bin:$PATH
5.刷新环境变量
source /etc/profile
6.验证
mvn -v
7.安装
apt install maven
至此,启动DolphinScheduler的基础组件已全部安装再linux虚拟机上了。
三、组内分工
朱嘉钊:
dolphinscheduler-dao 数据操作层。实体定义、数据存储
dolphinscheduler-alert 预警模块。与预警相关的方法、功能
杨帆:
dolphinscheduler-common 公共模块。公共方法或类
dolphinscheduler-api Restful接口。前后端交互层,与master/worker交互等功能
雍奥:
dolphinscheduler-ui 前端页面模块
dolphinscheduler-server 核心模块。包括master/worker等功能
闫航硕:
dolphinscheduler-rpc 日志查看。提供日志实时查看rpc功能
dolphinscheduler-dist 与编译、分发相关的模块。没有具体逻辑功能
参考博客:工作流任务调度系统:Apache DolphinScheduler_Yore - Home-优快云博客_dolphinscheduler