精华内容
下载资源
问答
  • dolphinscheduler-dist/target/apache-dolphinscheduler-${latest.release.version}-src.tar.gz: Source code package of DolphinScheduler Thanks DolphinScheduler is based on a lot of excellent open-source ...
  • dolphinscheduler-dist/target/apache-dolphinscheduler-incubating-${latest.release.version}-dolphinscheduler-bin.tar.gz: Binary package of DolphinScheduler dolphinscheduler-dist/target/apache-dolphin...
  • Apache DolphinScheduler官方网站 该项目保留了用于构建DolphinScheduler官方网站的所有资源,该网站位于 。 先决条件 DolphinScheduler网站由docsite。 另请确保您的节点版本为10+,尚不支持低于10.x的版本。 制作...
  • 一.Apache DolphinScheduler 背景 二.Apache DolphinScheduler 介绍 三.Apache DolphinScheduler 特性 四.Apache DolphinScheduler 单机部署流程 1.Linux 操作系统版本要求 2.服务器建议配置 3.基础软件安装 ...

    目录

    一. Apache DolphinScheduler 背景

    二. Apache DolphinScheduler 介绍

    三. Apache DolphinScheduler 特性

    四. Apache DolphinScheduler 单机部署流程

    1. Linux 操作系统版本要求

    2. 服务器建议配置

    3. 基础软件安装

    4. 下载二进制 tar.gz 包并安装

    5. 创建部署用户并赋予目录操作权限

    6. ssh 免密配置

    7. 数据库初始化

    8. 修改运行参数

    9. 一键部署

    10. 登录系统

    11. 启停服务


    一. Apache DolphinScheduler 背景

    2017年,易观在运营自己 6.8Pb 大小、6.02 亿月活、每天近万个调度任务的大数据平台时,受到 ETL (数据仓库技术) 复杂的依赖关系、平台易用性、可维护性及二次开发等方面的问题,技术团队渴望找到一个具有以下功能的数据调度工具:

    • 易于使用,开发人员可以通过非常简单的拖拽操作构建ETL过程;
    • 不仅对于 ETL 开发人员,无法编写代码的人也可以使用此工具进行 ETL 操作,例如系统管理员和分析师;
    • 解决 “复杂任务依赖” 问题,并且可以实时监视 ETL 运行状态;
    • 支持多租户;
    • 支持许多任务类型:Shell,MR,Spark,Flink,SQL(mysql,postgresql,hive,sparksql,clickhouse等),DataX,Sqoop,Python,Sub_Process,Procedure 等;
    • 支持HA和线性可扩展性。

    易观技术团队意识到现有开源项目没有能够达到他们要求的,因此决定自行开发这个工具。

    他们在2017年底设计了 DolphinScheduler 的主要架构;2018年5月完成第一个内部使用版本,后来又迭代了几个内部版本后,系统逐渐稳定下来。


    二. Apache DolphinScheduler 介绍

    Apache DolphinScheduler (Incubator,原 Easy Scheduler) 是一个可视化的分布式大数据工作流任务调度系统,DolphinScheduler 致力于“可视化操作工作流(任务)之间的依赖关系,并可视化监控整个数据处理过程”。简称 ”DS” , 中文名 为“小海豚调度”(海豚聪明、人性化,又左右脑可互相换班,终生不用睡觉)。

    DolphinScheduler 以有向无环图 (DAG) 的方式将任务组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill 任务等操作。

    Apache DolphinScheduler 于 17 年在易观数科立项,美国时间 2019 年 8 月 29 号正式通过顶级开源组织 Apache 基金会的投票决议,以全票通过的优秀表现正式成为了 Apache 孵化器项目, 目前已累计有 400+ 公司在生产上使用。


    三. Apache DolphinScheduler 特性

    高可靠性

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

    简单易用

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

    丰富的使用场景

    支持暂停恢复操作. 支持多租户,更好的应对大数据的使用场景. 支持更多的任务类型,如: Spark, Hive, M/R, Python, Sub_process, Shell;

    高扩展性

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


    四. Apache DolphinScheduler 单机部署流程

    DolphinScheduler 作为一款开源分布式工作流任务调度系统,可以很好的部署和运行在 Intel 架构服务器环境及主流虚拟化环境下,并支持主流的 Linux 操作系统环境。

    1. Linux 操作系统版本要求

    操作系统 版本
    Red Hat Enterprise Linux 7.0 及以上
    CentOS 7.0 及以上
    Oracle Enterprise Linux 7.0 及以上
    Ubuntu LTS 16.04 及以上

    2. 服务器建议配置

    DolphinScheduler 支持运行在 Intel x86-64 架构的 64 位通用硬件服务器平台。对生产环境的服务器硬件配置有以下建议:

    CPU 内存 硬盘类型 网络 实例数量
    4核+ 8 GB+ SAS 千兆网卡 1+

    如果服务器硬件配置不符合要求,建议升级服务器配置,不然可能因为配置不够而无法启动,不要问我是怎么知道的······

    3. 基础软件安装

    必装项

    • 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+) ;

    ZooKeeper 下载地址:

    https://archive.apache.org/dist/zookeeper/

    安装步骤可以参考如下链接:

    https://segmentfault.com/a/1190000019501252

    选装项

    • Hadoop (2.6+) or MinIO :如果需要用到资源上传功能,针对单机可以选择本地文件目录作为上传文件夹(此操作不需要部署 Hadoop );当然也可以选择上传到Hadoop or MinIO集群上;

      注意:DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,仅是会调用他们的 Client,用于对应任务的运行。

    4. 下载二进制 tar.gz 包并安装

    下载链接:https://dolphinscheduler.apache.org/zh-cn/download/download.html

    创建部署目录,比如 /opt/dolphinscheduler,将安装包上传至服务器部署目录:

    mkdir -p /opt/dolphinscheduler

    对安装包进行解压:

    tar -zxvf apache-dolphinscheduler-1.3.6-bin.tar.gz -C /opt/dolphinscheduler

    重命名:

    mv apache-dolphinscheduler-1.3.6-bin  dolphinscheduler-bin

    5. 创建部署用户并赋予目录操作权限

    创建部署用户时,一定要配置 sudo 免密,我们以创建 dolphinscheduler 用户为例。

    使用 root 登录后,创建用户:

    useradd dolphinscheduler

    添加密码:

    echo "dolphinscheduler" | passwd --stdin dolphinscheduler

    显示如下结果说明添加密码成功: 

    配置 sudo 免密:

    sed -i '$adolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
    sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers

    修改目录权限,使得部署用户对 dolphinscheduler-bin 目录有操作权限:

    chown -R dolphinscheduler:dolphinscheduler dolphinscheduler-bin

    之后需要配置 ssh的免密配置。

    6. ssh 免密配置

    切换到部署用户并配置 ssh 本机免密登录:

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

    注意:正常设置后,dolphinscheduler 用户在执行命令ssh localhost 是不需要再输入密码的;

    7. 数据库初始化

    进入数据库:

    mysql -uroot -p

    进入数据库命令行窗口后,执行数据库初始化命令,设置访问账号和密码:

    CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

    给用户授权并刷新(不要忘记替换这里的用户名和密码):

    GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
    GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';
    flush privileges;

    创建表和导入基础数据:

    (1) 进入当前目录,修改 conf 目录下 datasource.properties 中的下列配置:

    cd dolphinscheduler-bin/
    vi conf/datasource.properties

    (2) 如果选择 MySQL,需要注释掉 PostgreSQL 相关配置, 还需要手动添加 [ mysql-connector-java 驱动 jar ] 包到 lib 目录下,这里下载的是mysql-connector-java-5.1.47.jar:

    (3) 然后正确配置数据库连接相关信息:

    (4) 修改并保存完后,执行 script 目录下的创建表及导入基础数据脚本:

    sh script/create-dolphinscheduler.sh

    ​ 注意: 如果执行上述脚本报 ”/bin/java: No such file or directory“ 错误,请在/etc/profile下配置 JAVA_HOME 及 PATH 变量。

    8. 修改运行参数

    修改 conf/env 目录下的 dolphinscheduler_env.sh 环境变量(没有用到的可以忽略):

    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

    我们这里这是测试,只保留 JAVA_HOME:

    # 可以去环境变量文件里查找 java 路径
    export JAVA_HOME=/opt/soft/java
    export PATH=$JAVA_HOME/bin:$PATH

    将jdk软链到 /usr/bin/java 下:

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

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

    # 这里填 mysql or postgresql
    dbtype="mysql"
    
    # 数据库连接地址
    dbhost="localhost:3306"
    
    # 数据库名
    dbname="dolphinscheduler"
    
    # 数据库用户名,此处需要修改为上面设置的{user}具体值
    username="xxx"    
    
    # 数据库密码, 如果有特殊字符,请使用\转义,需要修改为上面设置的{password}具体值
    password="xxx"
    
    #Zookeeper地址,单机本机是localhost:2181,记得把2181端口带上
    zkQuorum="localhost:2181"
    
    #将DS安装到哪个目录,如: /opt/soft/dolphinscheduler,不同于现在的目录
    installPath="/opt/soft/dolphinscheduler"
    
    #使用哪个用户部署,使用第3节创建的用户
    deployUser="dolphinscheduler"
    
    # 邮件配置,以qq邮箱为例
    # 邮件协议
    mailProtocol="SMTP"
    
    # 邮件服务地址
    mailServerHost="smtp.qq.com"
    
    # 邮件服务端口
    mailServerPort="25"
    
    # mailSender和mailUser配置成一样即可
    # 发送者
    mailSender="xxx@qq.com"
    
    # 发送用户
    mailUser="xxx@qq.com"
    
    # 邮箱密码
    mailPassword="xxx"
    
    # TLS协议的邮箱设置为true,否则设置为false
    starttlsEnable="true"
    
    # 开启SSL协议的邮箱配置为true,否则为false。注意: starttlsEnable和sslEnable不能同时为true
    sslEnable="false"
    
    # 邮件服务地址值,参考上面 mailServerHost
    sslTrust="smtp.qq.com"
    
    # 业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS,S3,NONE,单机如果想使用本地文件系统,请配置为HDFS,因为HDFS支持本地文件系统;如果不需要资源上传功能请选择NONE。强调一点:使用本地文件系统不需要部署hadoop
    resourceStorageType="HDFS"
    
    # 这里以保存到本地文件系统为例
    #注:但是如果你想上传到HDFS的话,NameNode启用了HA,则需要将hadoop的配置文件core-site.xml和hdfs-site.xml放到conf目录下,本例即是放到/opt/dolphinscheduler/conf下面,并配置namenode cluster名称;如果NameNode不是HA,则修改为具体的ip或者主机名即可
    defaultFS="file:///data/dolphinscheduler"    #hdfs://{具体的ip/主机名}:8020
    
    # 如果没有使用到Yarn,保持以下默认值即可;如果ResourceManager是HA,则配置为ResourceManager节点的主备ip或者hostname,比如"192.168.xx.xx,192.168.xx.xx";如果是单ResourceManager请配置yarnHaIps=""即可
    # 注:依赖于yarn执行的任务,为了保证执行结果判断成功,需要确保yarn信息配置正确。
    yarnHaIps="192.168.xx.xx,192.168.xx.xx"
    
    # 如果ResourceManager是HA或者没有使用到Yarn保持默认值即可;如果是单ResourceManager,请配置真实的ResourceManager主机名或者ip
    singleYarnIp="yarnIp1"
    
    # 资源上传根路径,支持HDFS和S3,由于hdfs支持本地文件系统,需要确保本地文件夹存在且有读写权限
    resourceUploadPath="/data/dolphinscheduler"
    
    # 具备权限创建resourceUploadPath的用户
    hdfsRootUser="hdfs"
    
    #在哪些机器上部署DS服务,本机选localhost
    ips="localhost"
    
    #ssh端口,默认22
    sshPort="22"
    
    #master服务部署在哪台机器上
    masters="localhost"
    
    #worker服务部署在哪台机器上,并指定此worker属于哪一个worker组,下面示例的default即为组名
    workers="localhost:default"
    
    #报警服务部署在哪台机器上
    alertServer="localhost"
    
    #后端api服务部署在在哪台机器上
    apiServers="localhost"

    参数一定要配置正确,一一对应着修改。

    9. 一键部署

    切换到部署用户,执行一键部署脚本:

    sh install.sh

    脚本完成后,会启动以下 5 个服务,使用 jps命令查看服务是否启动 (jpsjava JDK自带)

        MasterServer         ----- master服务
        WorkerServer         ----- worker服务
        LoggerServer         ----- logger服务
        ApiApplicationServer ----- api服务
        AlertServer          ----- alert服务
    

    如果以上服务都正常启动,说明自动部署成功。

    然而,理想很丰满,现实很骨感,部署一帆风顺基本是不太可能的,在运行 jps 命令后发现,只有两个服务启动了:

    查看错误日志,尴尬了,原来是因为服务器空间不够,不过启动了两个服务,起码说明配置过程没有大的问题。

    虽然我自己的服务因为客观原因无法启动,但是本着做事有头有尾的原则,剩下的操作流程给大家补全了,可以按照以下步骤走完全程。

    10. 登录系统

    访问前端页面地址,接口 ip 请自行修改: 

    http://192.168.xx.xx:12345/dolphinscheduler

    这是来自官方访问成功的截图:

    11. 启停服务

    一键停止集群所有服务

    sh ./bin/stop-all.sh

    一键开启集群所有服务

    sh ./bin/start-all.sh

    启停 Master

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

    启停 Worker

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

    启停 Api

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

    启停 Logger

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

    启停 Alert

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

     

     

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

    本文正在参与“拥开源-Apache DolphinScheduler有奖征稿活动”


    什么是DolphinScheduler

    分布式易扩展的可视化DAG工作流任务调度系统

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

    • DolphinScheduler 由 5 个服务组成,MasterServer、WorkerServer、ApiServer、AlertServer、LoggerServer 和 UI。

    在这里插入图片描述

    • MasterServer

    MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG
    任务切分、任务提交监控,并同时监听其它MasterServer和WorkerServer的健康状态。
    MasterServer服务启动时向Zookeeper注册临时节点,通过监听Zookeeper临时节点变化来进行容错处理。

    • WorkerServer

    WorkerServer也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。WorkerServer服务启动时向Zookeeper注册临时节点,并维持心跳。

    • ZooKeeper

    ZooKeeper服务,系统中的MasterServer和WorkerServer节点都通过ZooKeeper来进行集群管理和容错。另外系统还基于ZooKeeper进行事件监听和分布式锁。
    我们也曾经基于Redis实现过队列,不过我们希望EasyScheduler依赖到的组件尽量地少,所以最后还是去掉了Redis实现。

    • Task Queue

    提供任务队列的操作,目前队列也是基于Zookeeper来实现。由于队列中存的信息较少,不必担心队列里数据过多的情况,实际上我们压测过百万级数据存队列,对系统稳定性和性能没影响。

    • API

    API接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。
    接口包括工作流的创建、定义、查询、修改、发布、下线、手工启动、停止、暂停、恢复、从该节点开始执行等等。

    DolphinScheduler对比其他任务调度系统

    DolphinScheduler的优势是什么?

    在这里插入图片描述

    有Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 为什么要选DolphinScheduler ?
    在这里插入图片描述
    还是有很多大型互联网公司在使用的(联通,奇安信等),社区还是非常活跃的,属于Apache的顶级开源项目

    简单使用案例

    官方教程

    使用Docker容器构建
    1. 请下载源码包 apache-dolphinscheduler-1.3.6-src.tar.gz
    2. 拉取镜像并启动服务
    $ 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
    

    将会下载postgresql和zookeeper镜像,因为我们指定已存在的;

    Status: Downloaded newer image for bitnami/postgresql:latest
    Pulling dolphinscheduler-zookeeper (bitnami/zookeeper:latest)...
    latest: Pulling from bitnami/zookeeper
    

    PostgreSQL (用户 root, 密码 root, 数据库 dolphinscheduler) 和 ZooKeeper服务将会默认启动

    1. 登录系统
      本地地址为 http://127.0.0.1:12345/dolphinscheduler)
      默认的用户是admin,默认的密码是dolphinscheduler123
      在这里插入图片描述
    • 指定已存在的 PostgreSQL 和 ZooKeeper 服务
    1. 运行一个 DolphinScheduler 实例
    $ docker run -d --name dolphinscheduler \
    -e DATABASE_HOST="192.168.x.x" -e DATABASE_PORT="5432" -e DATABASE_DATABASE="dolphinscheduler" \
    -e DATABASE_USERNAME="test" -e DATABASE_PASSWORD="test" \
    -e ZOOKEEPER_QUORUM="192.168.x.x:2181" \
    -p 12345:12345 \ apache/dolphinscheduler:latest all
    

    注:数据库用户 test 和密码 test 需要替换为实际的 PostgreSQL 用户和密码,192.168.x.x 需要替换为PostgreSQL 和 ZooKeeper 的主机 IP

    在容器启动时,会自动启动以下服务:

    MasterServer         ----- master服务
    WorkerServer         ----- worker服务
    LoggerServer         ----- logger服务
    ApiApplicationServer ----- api服务
    AlertServer          ----- alert服务
    

    本文正在参与“拥开源-Apache DolphinScheduler有奖征稿活动”


    展开全文
  • 创建 dolphinscheduler 用户,将 Scheduler 解压后目录的 owner 赋给前面 dolphinscheduler 用户 对 dolphinscheduler 用户设置 sudo 免密(必须) sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ...

    1、搭建Dolphin Scheduler 的Server端

    大致过程如下:

    1.1、解压缩

    1.2、创建一个部署的用户

    创建 dolphinscheduler 用户,将 Scheduler 解压后目录的 owner 赋给前面 dolphinscheduler 用户

    对 dolphinscheduler 用户设置 sudo 免密(必须)

    sed -i '$adolphinscheduler  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
    sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers

    用户需要进行 ssh 免密设置(必须)

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

    注意:这里需要 /home/dolphinscheduler 目录存在,

    1.3、初始化数据库

    这里用的是MySQL的数据库,默认配置的是 portgre  数据库,因此需要在 application-dao.properties 文件中设置 MySQL 的连接参数并去掉注释,同时,注释掉 portgre 的连接参数

    初始化数据的脚本执行之前,需要注意两件事:

    1、在 MySQL 数据库中创建一个叫 dolphinscheduler 的数据库,并且设置该数据库的访问账号和密码

    2、在/etc/profile下配置 JAVA_HOME 及 PATH 变量,否则会报错

    3、设置Java的软连接(如果报 "/bin/java: No such file or directory" 错误的话)

    4、引入 mysql-connector-java-5.1.47.jar 包(如果用的是mysql的数据库)

    1.4 修改运行参数

    按需配置,但是JAVA_HOME 和 PATH 是必须要配置的

    如果找不到.dolphinscheduler_env.sh, 就运行 ls -all

    需要设置Java的软连接,如: 

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

    1.5 修改 install.sh 脚本的配置项

    这里是非常重要的环节,而且配置项比较多,重点注意的几个地方:

    1.5.1、配置项中设置的目录设置

    都需要将 owner 设置为 dolphinscheduler(Dolphin Scheduler 的部署用户

     # hdfsPath  (HDFS 根目录,根路径的 owner 必须是部署用户)

     # installPath(# dolphinscheduler 集群安装目录,不能与之前的dolphinscheduler 路径相同)

     # Program root path   (程序路径)

     # zk root directory 是否是zookeeper的安装目录?

    这里将以上几个目录都放在 /dolphinscheduler 目录下

    programPath="/dolphinscheduler/program"

    hdfsPath="/dolphinscheduler/hdfs"

    zkRoot="/dolphinscheduler/zk"

    /dolphinscheduler 目录的 owner 必须是 dolphinscheduler 用户


    业务用到的比如sql等资源文件上传到哪里,可以设置:HDFS,S3,NONE,单机如果想使用本地文件系统,请配置为HDFS,因为HDFS支持本地文件系统;

    如果不需要资源上传功能请选择NONE。

    强调一点:使用本地文件系统不需要部署hadoop 

    1.5.2 如果使用资源中心的话,需要以下两个命令:

    sudo mkdir /data/dolphinscheduler

    sudo chown -R dolphinscheduler:dolphinscheduler /data/dolphinscheduler

    1.5.3 S3、企业微信等配置没有用到,直接注释掉

    1.5.4 执行一键安装的脚本文件

    sh install.sh

    注意:

    1、install.sh 脚本可能需要执行两次

    2、Dolphin Schedule 的 Server端启动默认端口8888,注意端口冲突

    1.5.5 JPS命令查看运行结果

    MasterServer ----- master服务

    WorkerServer ----- worker服务

    LoggerServer ----- logger服务

    ApiApplicationServer ----- api服务

    AlertServer ----- alert服务

     

    2.搭建 Dolphin Scheduler的UI端

    2.1 解压,执行 install-dolphinscheduler-ui.sh 脚本文件

    因为用的是 Ubuntu 操作系统,该脚本文件中有一段脚本代码是这样的:

    ubuntu(){
        # update source
        apt-get update
    
        # install nginx
        apt-get install -y nginx
    
        # config nginx
        dolphinschedulerConf $1 $2
    
        # startup nginx
        /etc/init.d/nginx start
        sleep 1
        if [ $? -ne 0 ];then
            /etc/init.d/nginx start
        fi
        nginx -s reload
    }

    其中, apt-get install -y nginx 是 Ubuntu 安装 Nginx 的命令,需要用到 Python 2.X的版本,因此,需要操作系统中有 pytho2.x的版本来支持这个命令的运行。

    如果当前用户对应的 Python 版本不是 2.x 或者  Python2.X 版本的环境被弄坏了,那么,是无法安装 nginx 的

    2.2 访问UI

    访问地址 : http://[IP_Address]:[Set_Port] 

    系统自带的一个默认账号密码为:

    admin/dolphinscheduler123


    踩到的坑:

    1、 创建 Linux 用户 dolphinscheduler 的时候,没有 /home/dolphinscheduler 目录,导致对 dolphinscheduler 进行 SSH 免密设置的时候报错:

    Could not create directory '/home/dolphinscheduler/.ssh': No such file or directory
    Saving key "/home/dolphinscheduler/.ssh/id_rsa" failed: No such file or directory

    2、install.sh 配置中的目录未正确将 owner 设置为 dolphinscheduler 用户,导致一键安装未成功

    3、python 2.x的版本被弄坏了,导致一键安装未成功,报错如下:

    Could not find platform independent libraries <prefix>
    Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
    ImportError: No module named site
    dpkg: 处理软件包 python-dateutil (--configure)时出错:
     子进程 已安装 post-installation 脚本 返回错误状态 1

    收货:

    1、~/ 指的是 /home/【当前用户名】所在的目录,如果该目录存在的话

    2、 ls -l 命令可以与 grep 命令结合起来用

    ls -l | grep python

    3、几个常见的 Ubuntu 命令:

    # 安装指定的工具,如 nginx
    apt-get install nginx
    # 检查 /etc/apt/sources.list 文件中的工具列表并更新
    apt-get update
    # 检查并更新本机已安装的工具的版本
    sudo apt-get upgrade

    注意: 这些工具的最新版本是由 Ubuntu 官网来定义的,最新的版本不一定是最好的,也可能是不适用的

    4、Linux系统初始化的时候,root 用户是没有设置密码的,需要手动对 root 用户设置密码

    $passwd root;
    新密码:
    再次输入新密码:

    5、linux下查看文件编码及修改编码:
    在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

    :set fileencoding=utf-8

    6、在Linux系统中使用UNIX标准的编码格式

    比如,某个文件可能是从 windows 上传过来的,那么文件的编码格式可能会无法被 Linux识别,这个时候需要统一编码格式

    a、安装 dos2unix
    b、执行 dos2unix [fileName]
    这样就可以将编码格式统一为 utf-8

    https://blog.csdn.net/u010445297/article/details/61668582

    7、sh install.sh 报错解决

    a、检查 install.sh 脚本的编码格式:确定是 utf-8,没有问题

    b、install.sh 脚本文件是从 DolphinScheduelr 官方获取的文件,报错的位置没有被修改过,所以该脚本文件本身的代码也不应该有问题

    c、由于操作系统是刚装好的,因此,怀疑 sh 的命令可能有问题,这里查看了 /bin/sh 的软连接,指向了 dash ,而非 bash 。

    因此,需要将 dash 改为 bash :

    sudo dpkg-reconfigure dash

    出现的界面中选择 NO, 之后就可以正常用 sh 命令执行 .sh 脚本文件了。

    参考文章:

    https://www.cnblogs.com/xudong-bupt/p/7883040.html

    展开全文
  • 海豚调度dolphinscheduler目前是 Apache 顶级项目,作为国内优秀的开源项目,它的架构设计理念会有很多值得我们学习和借鉴。 海豚调度dolphinscheduler是分布式易扩展的可视化DAG工作流任务调度系统 本文会包含如下...

    本文正在参与 “拥用源 – Apache DolphinScheduler有奖征稿活动”
    海豚调度dolphinscheduler目前是 Apache 顶级项目,作为国内优秀的开源项目,它的架构设计理念会有很多值得我们学习和借鉴。

    海豚调度dolphinscheduler是分布式易扩展的可视化DAG工作流任务调度系统

    本文会包含如下内容:

    • dolphinscheduler 部署时,如何进行数据库脚本初始化
    • dolphinscheduler如何维护不同版本的数据库脚本

    本篇文章适合人群:架构师、技术专家以及对任务调度非常感兴趣的高级工程师

    本文以海豚1.3.5的源代码,分析数据库脚本初始化流程。

    1. 数据库脚本初始化流程

    在第一次部署海豚调度或针对已有的海豚调度进行升级时,需要初始化数据库脚本,执行的命令是: sh script/create-dolphinscheduler.sh

    对应的代码入口是:org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler
    在这里插入图片描述
    实现了如下功能:

    1.1 初始化schema

    1. 检查版本表是否存在(t_escheduler_version、t_ds_version、t_escheduler_queue中的一个是否存在)
    2. 如果不存在,则根据数据库类型(目前支持MySQL、PostgreSQL两种),初始化海豚的元数据定义及初始化语句,
      如果存在,则跳过此步
      在这里插入图片描述

    1.2 升级schema

    1. 在如下图目录,获取所有升级需要的schema列表
    2. 获取海豚调度当前的版本
    3. 循环schema列表,只要待升级的schema的版本大于当前版本,则执行升级脚本
      在这里插入图片描述

    1.3 初始化流程

    在这里插入图片描述

    2. 如何维护数据库版本

    海豚的元数据定义,请参见: 海豚的元数据定义

    • 在sql/create中,定义海豚的元数据schema及数据初始化语句
      在这里插入图片描述
    • 在sql/upgrade中,定义每次版本升级中,修改的schema及增加的初始化语句

    注意:

    • 如果涉及到修改升级前版本的数据,则使用JAVA实现,如升级到1.3.4版本,需要修改原流程中的sqoop任务的参数配置。
    • 升级脚本是基于上一版本的schema调整的。升级时,依次升级,则从版本1.3.1升级到1.3.5,则需要依次先升级到1.3.2,
      再升级1.3.3, 再升级1.3.4, 最后升级到1.3.5
      在这里插入图片描述
      本文正在参与 “拥用源 – Apache DolphinScheduler有奖征稿活动”
    展开全文
  • 本文正在参与“拥开源 — Apache DolphinScheduler 有奖征稿活动” Apache DolphinScheduler 是一个分布式去中心化,易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度...
  • dolphinscheduler-1.2.0版本,这个是web端,github下载太慢,所以上传到这边,提供大家快速下载,这技术刚从apache毕业,不错。
  • DolphinScheduler使用文档

    万次阅读 2020-03-10 11:37:24
    工作流任务调度系统:Apache DolphinScheduler 工作流任务调度系统:Apache DolphinScheduler 一、文档说明 1.1 DolphinScheduler 说明 1.2 相关网址 1.3 名词解释 1.4 DolphinScheduler 架构 1.4.1 Master...
  • 手把手教您玩转开源大数据调度器Apache DolphinScheduler安装维护与实践,学不会你来打我。
  • 海豚调度dolphinscheduler目前是Apache顶级项目,作为国内优秀的开源项目,它的架构设计理念会有很多值得我们学习和借鉴。 海豚调度dolphinscheduler是分布式易扩展的可视化DAG工作流任务调度系统 本文会包含如下...
  • 海豚调度dolphinscheduler目前是 Apache 顶级项目,作为国内优秀的开源项目,它的架构设计理念会有很多值得我们学习和借鉴。 海豚调度dolphinscheduler是分布式易扩展的可视化DAG工作流任务调度系统 本文会包含如下...
  • 海豚调度dolphinscheduler目前是Apache顶级项目,作为国内优秀的开源项目,它的架构设计理念会有很多值得我们学习和借鉴。 海豚调度dolphinscheduler是分布式易扩展的可视化DAG工作流任务调度系统 本文会包含如下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,570
精华内容 628
关键字:

dolphinscheduler