在 Ubuntu 上安装 Docker 并运行 DolphinScheduler

发布时间:2026/7/27 6:29:55

在 Ubuntu 上安装 Docker 并运行 DolphinScheduler 一、背景与选型1.1 定义Apache DolphinScheduler 是一个可视化、分布式的大数据工作流任务调度系统。通俗点说就是用来编排和自动执行你那些复杂ETL任务的“指挥中心”。可以把之前写的各个SQL脚本、Shell脚本都拖拽成一个有依赖关系的流程图DAG然后设定好时间比如每天凌晨2点它就会按时自动执行并监控每个任务的运行状态为什么用DolphinScheduler在数据开发中任务编排是绕不开的痛点。早期用 Crontab 凑合任务一多依赖关系就乱成麻失败重试全靠手动半夜被告警叫醒翻日志是常态。DolphinScheduler 解决的就是这个问题——用可视化 DAG 把依赖理清楚支持自动重试、补数和告警而且部署轻量不依赖外部数据库而且 DolphinScheduler 是国产开源项目文档和社区交流都是中文新手更容易上手。相比 Airflow 和 Azkaban它更轻、更易上手用 Docker 一键部署就能快速搭建一套可靠的任务调度系统。所以我选择它作为调度底座。1.2 主流调度工具对比对比维度AzkabanAirflowDolphinScheduler核心定位LinkedIn开源的轻量级Hadoop任务调度器主打简单依赖和定时执行。Airbnb开源以代码定义工作流Python的国际标准调度平台Apache顶级项目。易观开源的可视化DAG工作流调度系统Apache顶级项目国内企业友好型。优点1.架构简单依赖少仅需MySQL部署和上手快。2.Hadoop原生支持对Hive、Pig等任务友好。3.轻量稳定适合低复杂度、纯离线场景。1.DAG表达能力极强支持复杂条件分支、动态任务Python代码灵活度最高。2.生态无比丰富拥有海量Operator和插件是DataOps/MLOps的事实标准。3.社区极其活跃版本迭代快云厂商和主流数据工具默认支持。1.UI体验极佳拖拽式可视化DAG定义业务人员也能参与。2.大数据生态集成对Spark、Flink、Hive等任务支持完善国内数据中台事实标准。3.去中心化高可用多Master/Worker架构运维相对简单支持多租户和资源队列。缺点1.功能薄弱DAG表达能力弱不支持复杂分支、条件判断和任务重试。2.权限粗糙仅有项目级权限多团队管理混乱。3.社区停滞更新缓慢与现代数据栈割裂不推荐新项目使用。1.运维复杂组件多Scheduler, Web, Executor, MetaDB调优门槛高。2.Python门槛必须用Python写DAG非开发人员无法直接使用。3.性能瓶颈Scheduler基于轮询和数据库任务量巨大时存在性能压力。1.Python生态较弱动态DAG能力和自定义灵活性不如Airflow。2.二次开发成本高海外社区影响力相对有限深度定制不如Airflow方便。3.细粒度权限管控部分权限管控能力有待加强追求国际标准、生态丰富、团队Python技术强→选Airflow。它是数据工程领域最通用的“瑞士军刀”。追求易用性、可视化、团队技术栈偏Java/Scala或想低门槛→选DolphinScheduler。它在国内企业的数据中台建设中已成为事实标准。维护老Hadoop系统任务量很小→可以继续用Azkaban。但任何新项目都不建议再选它二、部署方式对比为什么选择Docker部署DS对比项Docker 方式二进制包方式下载大小~1.5 GB~300 MB网络要求高经常卡住低环境依赖只需 Docker需要 Java 8启动速度快镜像已下载快与大数据组件集成需要配置网络直接配置路径即可适用场景体验/测试生产部署综上对比我开始了我的DS探索之旅。下面来讲DolphinScheduler的部署三、Docker部署Docker 方式一键搞定不用折腾环境3.1 安装docker打开Ubuntu终端运行# 更新软件包索引 sudo apt update # 安装依赖 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # 添加 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 知道 自己的 Ubuntu 版本 lsb_release -a # 添加 Docker 稳定版仓库根据你的 Ubuntu 版本如 20.04 或 22.04 echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 添加 Docker 官方仓库 版本是 Ubuntu 22.04 Jammy echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装 Docker sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io # 将当前用户加入 docker 组避免每次都用 sudo sudo usermod -aG docker $USER #执行完后退出当前终端会话重新登录或者执行 newgrp docker让权限生效。 # 启动 Docker 并设置开机自启 sudo systemctl enable docker sudo systemctl start docker验证一下docker是否正常docker --version #正常显示版本号说明安装成功验证普通用户能否执行 docker 命令docker --version # 不报权限错误就说明配置好了启动 DolphinScheduler单机体验遇到拉取docker镜像失败遇到报错connection refused说明 Docker 无法连接到 Docker Hub 官方镜像仓库。这是网络问题通常是国内访问 Docker Hub 被限制或速度太慢导致的。解决方案——尝试配置 Docker 国内镜像加速器配了中科大、网易、百度等镜像加速源还可以选择阿里云专属加速器。还可以采取用其他方式部署——直接下载DolphinScheduler 的二进制包运行不依赖 Docker注意Docker镜像拉取失败时建议改用二进制包方式部署四、二进制包部署4.1 下载安装包在遇到其他镜像源拉取不顺利的情况下用官方归档站archive.apache.org它是最稳定、不会变动的下载源。wget https://archive.apache.org/dist/dolphinscheduler/3.2.2/apache-dolphinscheduler-3.2.2-bin.tar.gz # 用 Apache 的永久归档链接比 dlcdn 镜像更可靠不会出现 404 的情况然后就是漫长的等待过程经历了3次断点续传耗时4h31ms4.2 解压与启动终于漫漫waiting过去了下载好 了# 解压安装包 tar -xvzf apache-dolphinscheduler-3.2.2-bin.tar.gz # 进入解压后的目录 cd apache-dolphinscheduler-3.2.2-bin # 启动 Standalone Server 服务 bash ./bin/dolphinscheduler-daemon.sh start standalone-server想关闭服务如下执行启动命令服务就会重新跑起来然后打开浏览器访问 就能使用了。cd apache-dolphinscheduler-3.2.2-binbash ./bin/dolphinscheduler-daemon.sh start standalone-server五、web界面访问默认账号admin密码dolphinscheduler123。URL:http://你的Ubuntu IP地址:12345/dolphinscheduler/ui如果是在虚拟机里运行 Ubuntu需要确认网络模式是桥接模式Bridged或 NAT 端口转发确保宿主机能访问到虚拟机的 IP。六、DS后台实操下面来跑一个调度任务并跑通一个 Shell 任务。目标创建一个简单的 Shell 工作流并定时运行它① 创建租户 (Tenant)租户就是 DolphinScheduler 用来执行实际任务的Linux 系统用户。这能保证任务有正确的文件系统权限。并在用户管理中把刚才创建的租户分配给用户(下拉框中找到刚刚创建的租户点击提交)让admin用户有权限提交任务。填信息队列默认default就行② 创建项目 工作流都必须归属在项目下。③ 创建工作流 (Workflow) 也就是画 DAG 图进入一个可视化拖拽画布这个画布是 DolphinScheduler 最核心的地方——拖拽式设计 DAG有向无环图。 从左侧工具栏里把你需要的任务类型比如 Shell 节点拖到画布上。把 脚本内容填进去或者引用你上传的资源文件。 一个节点与另一个节点之间形成它们的ETL前后依赖关系比如ODS装载完成才执行DWD清洗。DAG (有向无环图)这是核心思想所有任务依赖关系都在这个图里清晰展示。DAG 说白了就是谁先跑谁后跑用箭头连起来(任务先后执行流程图)。任务类型它原生支持 Shell、Hive、Spark、SQL 等几十种任务非常贴合大数据场景Hive SQL可以直接用。④ 上线 填写节点名称并输入脚本都配置好了点击保存工作流点击「上线」⑤ 定时 接着会弹出问你要不要设置定时调度 有需要的话就点击没有需要就关闭弹窗。定时任务让凌晨时刻执行这样数仓ETL就会每天自动跑起来了⑥ 看效果 点左侧“工作流实例”→ 点击这个实例看到 绿色成功右键点任意节点 →“查看日志”能看到你写的 echo 内容DAG有向无环图的核心有向箭头指明了方向A→B 就是 A 先跑无环没有回路不会 A→B→A 死循环思考—从 C 再拖一条线回到 A系统会提示“不允许形成环”这就是“无环”的体现。还可以把任务类型换成“SQL”或“Hive”节点感受一下不同任务类型。总结流程建租户 - 建项目 - 拖任务建 DAG - 上线 - 定时是 DolphinScheduler 的标准使用模式遇到的问题没有可安装候选在知道自己的系统版本之后按照下面一步步排查解决最后验证版本号正常就可以了# 1 删除可能存在的旧配置 sudo rm -f /etc/apt/sources.list.d/docker.list sudo rm -f /etc/apt/sources.list.d/docker-ce.list # 更新软件包列表 sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release # 2 安装必要依赖 # 3 添加 Docker 官方 GPG 密钥 # 创建密钥存放目录 sudo mkdir -p /etc/apt/keyrings # 下载并添加 Docker GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置密钥文件权限 sudo chmod ar /etc/apt/keyrings/docker.gpg # 4 添加 Docker 官方源 echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null ## 更新软件包列表 sudo apt update # 5 安装 Docker sudo apt install -y docker-ce docker-ce-cli containerd.io七、常见问题 FAQQ1 怎么知道服务器IP① Windows打开命令行输入ipconfig找到IPv4地址。② Mac/Linux打开终端输入ifconfig或ip addr找到inet后面的数字。③ 云服务器直接看服务商控制台给的公网IP。④ 如果Docker跑在本机访问http://localhost:12345/dolphinscheduler/ui就行。八、总结学习顺序熟练DS拖拽编排→对接Hive/MySQL调度SQL任务→学习Airflow基础DAG编写高频考点DS架构、HA高可用原理、任务失败重试、补数机制演示视频dolphinscheduler完结

相关新闻