美文网首页
EasyScheduler(dolphinscheduler)1

EasyScheduler(dolphinscheduler)1

作者: 白面葫芦娃92 | 来源:发表于2019-10-14 18:02 被阅读0次

官网文档地址:https://dolphinscheduler.apache.org/zh-cn/docs/user_doc/quick-start.html
源码下载地址:https://github.com/apache/incubator-dolphinscheduler/releases

一、Easy Scheduler后端编译

1.下载源码

[root@hadoop001 ~]# cd source
[root@hadoop001 source]# wget https://github.com/apache/incubator-dolphinscheduler/archive/1.1.0.tar.gz
[root@hadoop001 source]# mv 1.1.0.tar.gz escheduler-1.1.0-src.tar.gz
[root@hadoop001 source]# tar -zxf escheduler-1.1.0-src.tar.gz
[root@hadoop001 source]# ll
-rw-r--r--  1 root root   15841641 Oct 12 18:25 escheduler-1.1.0-src.tar.gz
drwxrwxr-x 13 root root       4096 Oct 12 18:29 incubator-dolphinscheduler-1.1.0

2.进入根目录编译

[root@hadoop001 source]# cd incubator-dolphinscheduler-1.1.0/
[root@hadoop001 incubator-dolphinscheduler-1.1.0]# mvn -U clean package assembly:assembly -Dmaven.test.skip=true
[root@hadoop001 incubator-dolphinscheduler-1.1.0]# cd target/
[root@hadoop001 target]# ll
total 153416
drwxr-xr-x 2 root root      4096 Oct 12 18:29 archive-tmp
drwxr-xr-x 7 root root      4096 Oct 14 16:10 escheduler-1.1.0
-rw-r--r-- 1 root root 157089187 Oct 12 18:29 escheduler-1.1.0.tar.gz

二、基础软件安装

三、创建部署用户(我是在root用户下部署的,故没做这一步)

在所有需要部署调度的机器上创建部署用户,因为worker服务是以 sudo -u {linux-user} 方式来执行作业,所以部署用户需要有 sudo 权限,而且是免密的。

vi /etc/sudoers

例如部署用户是escheduler账号

escheduler  ALL=(ALL)       NOPASSWD: NOPASSWD: ALL

并且需要注释掉 Default requiretty 一行(视不同操作系统而定)

#Default requiretty

四、ssh免密配置(暂时伪分布式部署,先前已配置好本机免密登录自己)

在部署机器和其他安装机器上配置ssh免密登录,如果要在部署机上安装调度,需要配置本机免密登录自己

五、MySQL数据库初始化

1.创建database和账号

  CREATE DATABASE escheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  GRANT ALL PRIVILEGES ON escheduler.* TO 'root'@'%' IDENTIFIED BY 'escheduler';
  GRANT ALL PRIVILEGES ON escheduler.* TO 'root'@'hadoop001' IDENTIFIED BY 'escheduler';
  flush privileges;

2.创建表和导入基础数据 修改conf/dao/data_source.properties中的下列属性

[root@hadoop001 target]# cd escheduler-1.1.0
[root@hadoop001 escheduler-1.1.0]# ll
total 56
drwxr-xr-x 2 root root  4096 Oct 12 18:29 bin
drwxr-xr-x 8 root root  4096 Oct 14 16:16 conf
-rwxrwxr-x 1 root root 18606 Oct 14 16:10 install.sh
drwxr-xr-x 2 root root 20480 Oct 12 18:29 lib
drwxr-xr-x 2 root root  4096 Oct 12 18:29 script
drwxr-xr-x 4 root root  4096 Oct 12 18:29 sql
[root@hadoop001 escheduler-1.1.0]# cd conf/dao/
[root@hadoop001 dao]# ll
total 4
-rw-rw-r-- 1 root root 2604 Oct 14 16:16 data_source.properties
[root@hadoop001 dao]# vi data_source.properties 
----------------------------------------------------------------------------------------
spring.datasource.url=jdbc:mysql://172.26.183.103:3306/escheduler?characterEncod
ing=UTF-8
spring.datasource.username=root
spring.datasource.password=escheduler
----------------------------------------------------------------------------------------

3.执行创建表和导入基础数据脚本

[root@hadoop001 dao]# cd ../../script/
[root@hadoop001 script]# ll
total 32
-rw-rw-r-- 1 root root  712 Aug  5 10:38 create_escheduler.sh
-rw-rw-r-- 1 root root  424 Aug  5 10:38 del_zk_node.py
-rw-rw-r-- 1 root root 3148 Aug  5 10:38 escheduler-daemon.sh
-rw-rw-r-- 1 root root 4083 Aug  5 10:38 monitor_server.py
-rwxrwxr-x 1 root root  711 Aug  5 10:38 scp_hosts.sh
-rwxrwxr-x 1 root root  893 Aug  5 10:38 start_all.sh
-rwxrwxr-x 1 root root  889 Aug  5 10:38 stop_all.sh
-rw-rw-r-- 1 root root  713 Aug  5 10:38 upgrade_escheduler.sh
[root@hadoop001 script]# sh ./create_escheduler.sh 

六、修改部署目录权限及运行参数

1.我们先来大体了解下解压后escheduler目录下的文件(夹)的作用
bin : 基础服务启动脚本
conf : 项目配置文件
install.sh : 一键部署脚本
lib : 项目依赖jar包,包括各个模块jar和第三方jar
script : 集群启动、停止和服务监控启停脚本
sql : 项目依赖sql文件
2.修改权限(请将deployUser自行修改为对应部署用户),使得部署用户对escheduler-backend目录有操作权限
[root@hadoop001 target]# chown -R root:root escheduler-1.1.0
3.修改conf/env/目录下的 .escheduler_env.sh 环境变量

[root@hadoop001 target]# cd escheduler-1.1.0
[root@hadoop001 escheduler-1.1.0]# cd conf/env/
[root@hadoop001 env]# ll -a
total 12
drwxr-xr-x 2 root root 4096 Oct 14 16:03 .
drwxr-xr-x 8 root root 4096 Oct 14 16:16 ..
-rw-rw-r-- 1 root root  379 Oct 12 19:22 .escheduler_env.sh
[root@hadoop001 env]# vi .escheduler_env.sh 
export HADOOP_HOME=/root/app/hadoop
export HADOOP_CONF_DIR=/root/app/hadoop/etc/hadoop
export SPARK_HOME1=/root/app/spark
export SPARK_HOME2=/root/app/spark2
export PYTHON_HOME=/root/app/python
export JAVA_HOME=/usr/java/jdk1.8.0_45
export HIVE_HOME=/root/app/hive

export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH

4.修改部署参数
(1)修改install.sh中参数,替换成自身业务所需的值

[root@hadoop001 env]# cd ../../
[root@hadoop001 escheduler-1.1.0]# vi install.sh
# mysql配置
# mysql 地址,端口
mysqlHost="172.26.183.103:3306"

# mysql 数据库名称
mysqlDb="escheduler"

# mysql 用户名
mysqlUserName="root"

# mysql 密码
# 注意:如果有特殊字符,请用 \ 转移符进行转移
mysqlPassword="escheduler"

# conf/config/install_config.conf配置
# 注意:安装路径,不要当前路径(pwd)一样
installPath="/root/app/escheduler"

# 部署用户
# 注意:部署用户需要有sudo权限及操作hdfs的权限,如果开启hdfs,根目录需要自行创建
deployUser="root"

# zk集群
#zkQuorum="172.26.183.101:2181,172.26.183.102:2181,172.26.183.103:2181"
zkQuorum="172.26.183.103:2181"
# 安装hosts
# 注意:安装调度的机器hostname列表,如果是伪分布式,则只需写一个伪分布式hostname即可
#ips="hadoop001,hadoop002,hadoop003"
ips="hadoop001"
# conf/config/run_config.conf配置
# 运行Master的机器
# 注意:部署master的机器hostname列表
masters="hadoop001"

# 运行Worker的机器
# 注意:部署worker的机器hostname列表
workers="hadoop001"

# 运行Alert的机器
# 注意:部署alert server的机器hostname列表
alertServer="hadoop001"

# 运行Api的机器
# 注意:部署api server的机器hostname列表
apiServers="hadoop001"

(2)如果使用hdfs相关功能,需要拷贝hdfs-site.xml和core-site.xml到conf目录下

[root@hadoop001 escheduler-1.1.0]# cd conf
[root@hadoop001 conf]# ll
total 80
-rw-rw-r-- 1 root root 1077 Aug  5 10:38 alert_logback.xml
-rw-rw-r-- 1 root root  986 Oct 14 16:16 alert.properties
-rw-rw-r-- 1 root root 1366 Aug  5 10:38 apiserver_logback.xml
-rw-rw-r-- 1 root root   44 Aug  5 10:38 application_master.properties
-rw-rw-r-- 1 root root  473 Oct 14 16:16 application.properties
-rw-rw-r-- 1 root root 2135 Aug  5 10:38 combined_logback.xml
drwxr-xr-x 3 root root 4096 Oct 14 16:16 common
drwxr-xr-x 2 root root 4096 Oct 14 16:16 config
-rw-r--r-- 1 root root 1043 Oct 12 19:23 core-site.xml
drwxr-xr-x 2 root root 4096 Oct 14 16:16 dao
drwxr-xr-x 2 root root 4096 Oct 14 16:03 env
-rw-r--r-- 1 root root 1183 Oct 12 19:23 hdfs-site.xml
drwxr-xr-x 2 root root 4096 Oct 12 18:29 i18n
drwxr-xr-x 2 root root 4096 Oct 12 18:29 mail_templates
-rw-rw-r-- 1 root root 1185 Aug  5 10:38 master_logback.xml
-rw-rw-r-- 1 root root  575 Oct 14 16:16 master.properties
-rw-rw-r-- 1 root root 1825 Oct 14 16:16 quartz.properties
-rw-rw-r-- 1 root root 2078 Aug  5 10:38 worker_logback.xml
-rw-rw-r-- 1 root root  440 Oct 14 16:16 worker.properties
-rw-rw-r-- 1 root root  876 Oct 14 16:16 zookeeper.properties

七、后端部署

(1)确保MySQL server和zkServer在运行状态

[root@hadoop001 escheduler-1.1.0]# jps
8930 Jps
11195 QuorumPeerMain
[root@hadoop001 escheduler-1.1.0]# service mysql status
MySQL running (23760)                                      [  OK  ]

(2)安装zookeeper工具

[root@hadoop001 escheduler-1.1.0]# pip install kazoo

(3)一键安装

[root@hadoop001 escheduler-1.1.0]# sh ./install.sh

(4)检查安装正常与否

[root@hadoop001 escheduler-1.1.0]# jps
8930 Jps
1492 LoggerServer                      //----- logger服务
1544 ApiApplicationServer              //----- api服务
1465 WorkerServer                      //----- worker服务
11195 QuorumPeerMain
1518 AlertServer                      //----- alert服务
1439 MasterServer                     //----- master服务

(5)可查看日志

[root@hadoop001 ~]# cd app/escheduler
[root@hadoop001 escheduler]# ll
total 60
drwxr-xr-x 2 root root  4096 Oct 14 16:16 bin
drwxr-xr-x 8 root root  4096 Oct 14 16:16 conf
-rwxr-xr-x 1 root root 18606 Oct 14 16:16 install.sh
drwxr-xr-x 2 root root 20480 Oct 14 16:16 lib
drwxr-xr-x 3 root root  4096 Oct 14 17:00 logs
drwxr-xr-x 2 root root  4096 Oct 14 16:16 script
drwxr-xr-x 4 root root  4096 Oct 14 16:16 sql
[root@hadoop001 escheduler]# cd logs
[root@hadoop001 logs]# ll
total 152
-rw-r--r-- 1 root root   290 Oct 14 16:16 escheduler-alert.log
-rw-r--r-- 1 root root     0 Oct 14 16:16 escheduler-alert-server-hadoop001.out
-rw-r--r-- 1 root root     5 Oct 14 16:16 escheduler-alert-server.pid
-rw-r--r-- 1 root root  6934 Oct 14 16:55 escheduler-api-server.2019-10-14_16.0.log
-rw-r--r-- 1 root root   294 Oct 14 16:16 escheduler-api-server-hadoop001.out
-rw-r--r-- 1 root root 62826 Oct 14 17:10 escheduler-api-server.log
-rw-r--r-- 1 root root     5 Oct 14 16:16 escheduler-api-server.pid
-rw-r--r-- 1 root root  5103 Oct 14 16:16 escheduler-logger-server-hadoop001.out
-rw-r--r-- 1 root root     5 Oct 14 16:16 escheduler-logger-server.pid
-rw-r--r-- 1 root root   281 Oct 14 16:17 escheduler-master.log
-rw-r--r-- 1 root root   294 Oct 14 16:16 escheduler-master-server-hadoop001.out
-rw-r--r-- 1 root root     5 Oct 14 16:16 escheduler-master-server.pid
-rw-r--r-- 1 root root 21550 Oct 14 16:16 escheduler-worker.log
-rw-r--r-- 1 root root   269 Oct 14 16:16 escheduler-worker-server-hadoop001.out
-rw-r--r-- 1 root root     5 Oct 14 16:16 escheduler-worker-server.pid
drwxr-xr-x 3 root root  4096 Oct 14 16:16 {processDefinitionId}

(6)常用启停服务

1.一键停止集群所有服务
sh ./bin/stop_all.sh
2.一键开启集群所有服务
sh ./bin/start_all.sh
3.启停Master
sh ./bin/escheduler-daemon.sh start master-server
sh ./bin/escheduler-daemon.sh stop master-server
4.启停Worker
sh ./bin/escheduler-daemon.sh start worker-server
sh ./bin/escheduler-daemon.sh stop worker-server
5.启停Api
sh ./bin/escheduler-daemon.sh start api-server
sh ./bin/escheduler-daemon.sh stop api-server
6.启停Logger
sh ./bin/escheduler-daemon.sh start logger-server
sh ./bin/escheduler-daemon.sh stop logger-server
7.启停Alert
sh ./bin/escheduler-daemon.sh start alert-server
sh ./bin/escheduler-daemon.sh stop alert-server

八、前端部署

1.安装epel源

yum install epel-release -y

2.自动部署

[root@hadoop001 software]# wget https://github.com/apache/incubator-dolphinscheduler/releases/download/1.1.0/escheduler-1.1.0-ui.tar.gz
//解压,注意不要解压到root目录下,有坑
[root@hadoop001 software]# tar -zxf escheduler-1.1.0-ui.tar.gz -C /usr/local/escheduler-ui
[root@hadoop001 software]# cd /usr/local/escheduler-ui/
[root@hadoop001 escheduler-ui]# pwd
/usr/local/escheduler-ui
[root@hadoop001 escheduler-ui]# ll
total 12
drwxr-xr-x 9 sqoop2 games 4096 Aug  5 13:51 dist
-rwxr-xr-x 1 sqoop2 games 5748 May 30 16:21 install-escheduler-ui.sh
[root@hadoop001 escheduler-ui]# sh ./install-escheduler-ui.sh

3.修改nginx配置文件

[root@hadoop001 escheduler-ui]# vi /etc/nginx/conf.d/default.conf
server {
    listen       8888;  #自行修改
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/local/escheduler-ui/dist;  #自行修改,注意不要放在root目录下
        index  index.html index.htm;
    }
    location /escheduler {
        proxy_pass http://172.26.183.103:12345; # 接口地址(自行修改)
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header x_real_ipP $remote_addr;
        proxy_set_header remote_addr $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_connect_timeout 4s;
        proxy_read_timeout 30s;
        proxy_send_timeout 12s;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
另外,还需要检查一下/etc/nginx/conf.d/escheduler.conf,验证里边端口、location等配置是否正确

4.重启nginx服务

systemctl restart nginx

5.nginx命令

启用 systemctl enable nginx
重启 systemctl restart nginx
状态 systemctl status nginx

九、登录UI界面


相关文章

网友评论

      本文标题:EasyScheduler(dolphinscheduler)1

      本文链接:https://www.haomeiwen.com/subject/yoormctx.html