介绍

Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。可以让开发的任务更加的可视化和清晰,对数据开发工程非常的友好。想要了解更多的信息可以访问官方网站:https://dolphinscheduler.apache.org/zh-cn/index.html

快速开始

更多更详细的安装和快速开始请访问官方地址:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/docker-deployment.html

前天条件

1. 下载源码包

请下载源码包 apache-dolphinscheduler-1.3.6-src.tar.gz,下载地址: 下载

2. 拉取镜像并启动服务

1
2
3
4
$ tar -zxvf apache-dolphinscheduler-1.3.6-src.tar.gz
$ cd apache-dolphinscheduler-1.3.6-src/docker/docker-swarm
$ docker pull apache/dolphinscheduler:latest
$ docker-compose up -d

3. 登录系统

访问前端页面: http://192.168.xx.xx:12345/dolphinscheduler

默认的用户是admin,默认的密码是dolphinscheduler123

FAQ

使用DataX

1
2
3
4
5
6
7
8
#下载datax的编译好的文件,也可以自己本地编译
docker cp datax.tgz docker-swarm_dolphinscheduler-worker_1:/opt/soft

docker exec -it docker-swarm_dolphinscheduler-worker_1 bash
cd /opt/soft
tar zxf datax.tgz
rm -f datax.tgz
mv datax.tgz datax

使用Spark

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#下载spark-2.4.7-bin-hadoop2.7.tgz 这个根据自己需要看版本,这个是共享的目录,不会丢失的
docker cp spark-2.4.7-bin-hadoop2.7.tgz docker-swarm_dolphinscheduler-worker_1:/opt/soft

#去容器内部配置
docker exec -it docker-swarm_dolphinscheduler-worker_1 bash
cd /opt/soft
tar zxf spark-2.4.7-bin-hadoop2.7.tgz
rm -f spark-2.4.7-bin-hadoop2.7.tgz
ln -s spark-2.4.7-bin-hadoop2.7 spark2 # 或者 mv
$SPARK_HOME2/bin/spark-submit --version

#如果现实版本信息就成功了

环境变量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
export HADOOP_HOME=/opt/soft/hadoop
export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop
#export SPARK_HOME1=/opt/soft/spark1
export SPARK_HOME2=/opt/soft/spark2
export PYTHON_HOME=/opt/soft/python
export JAVA_HOME=/opt/soft/java
export HIVE_HOME=/opt/soft/hive
export FLINK_HOME=/opt/soft/flink
export DATAX_HOME=/opt/soft/datax/bin/datax.py
export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME:$PATH

上传大文件报错(使用docker-compose启动的方式)

java.lang.OutOfMemoryError: Java heap space

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#修改文件apache-dolphinscheduler-1.3.6-src/docker/docker-swarm/config.env.sh

#============================================================================
# Api Server
#============================================================================
#这个是默认的大家,注意下版本
#API_SERVER_OPTS=-Xms512m -Xmx512m -Xmn256m
API_SERVER_OPTS=-Xms512m -Xmx1024m -Xmn256m

#修改好了保存,删除旧的容器,重启启动新的就好了
docker-compose stop docker-swarm_dolphinscheduler-api_1
docker-compose up -d

配置/etc/hosts

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
dolphinscheduler-worker:
    image: apache/dolphinscheduler:latest
    command: worker-server
    environment:
      TZ: Asia/Shanghai
    env_file: config.env.sh
    healthcheck:
      test: ["CMD", "/root/checkpoint.sh", "WorkerServer"]
      interval: 30s
      timeout: 5s
      retries: 3
    depends_on:
    - dolphinscheduler-postgresql
    - dolphinscheduler-zookeeper
    volumes:
    - dolphinscheduler-worker-data:/tmp/dolphinscheduler
    - dolphinscheduler-logs:/opt/dolphinscheduler/logs
    - dolphinscheduler-shared-local:/opt/soft
    - dolphinscheduler-resource-local:/dolphinscheduler
    restart: unless-stopped
    networks:
    - dolphinscheduler
    #新增以下的配置,可以访问集群的一些机器
    extra_hosts:
    - "cdh01:172.26.10.71"
    - "cdh02:172.26.10.72"
    - "cdh03:172.26.10.73"
    - "cdh04:172.26.10.74"
    #下面的一行解决了,获取ApplicationStatus的失败
    - "ds1:172.26.10.72" 

getApplicationStatus获取失败(版本1.3.6)

1
2
3
报错日志:rg.apache.dolphinscheduler.common.utils.HttpUtils:[73] - ds1: Name or service not known

需要在worker节点上配置 ds1到自己yarn集群的服务器上就可以了。默认端口是8088

总结

随着使用过程更新内容