当前位置: 首页 > article >正文

dolphinscheduler

dolphinscheduler

官网地址:

https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/about/hardware

1. 概念:dolphinscheduler是一个功能强大的开源调度系统,专为管理和调度大规模数据处理任务设计。

2. 特点:

  • 分布式架构、支持大规模
  • 多任务类型支持:支持多种任务类型,如hadoop、spark、flink、hive、py、shell等,满足不同数据处理需求。
  • 丰富的调度策略与监控:提供多种调度策略和强大的监控功能,帮助用户有效管理和优化任务执行。
  • 可视化操作,允许用户通过拖拽方式构建工作流,简化复杂任务的配置过程。
  • 易扩展性:可水平扩展
  • 高可用性和容错能力:通过去中心化架构和动态选举主节点机制,确保系统稳定运行。
  • 组件组成:
  1. masterserver: 负责任务的切分、提交和监控,同时监听其他masterserver和workerserver的状态。
  2. wokerserver: 执行具体任务并提供日志服务。
  3. zookeeper: 用于实现集群管理和容错。
  4. alert服务: 提供告警通知。
  5. api接口层:处理来自前端UI的请求。
  6. web UI:提供用户界面,支持工作流的可视化编辑和管理。

3. dophinscheduler,其中tenant,是租客

4. dophinscheduler,在ETL系统中,可以很好的编排这些ETL(Extract, Transform, Load),对于大数据计算框架如Spark和Flink的任务调度,DolphinScheduler能够有效地管理任务的执行顺序和资源分配。例如,在一个基于Spark的机器学习项目中,它可以安排数据准备任务、模型评估任务的执行顺序,并且合理的分配集群资源给这些任务。可以用于执行一些定时的数据备份、报表生成等任务。比如,企业需要每天定时生成销售报表,就可以使用.

5. 在定时任务方面,dolphinscheduler和crontab的区别

crontab

dolphinscheduler

简单的定时任务

复杂的定时任务,有依赖关系的,比如电商企业中,备份订单数据-->生成销售报表-->发给相关部门。dolphinscheduler将三个任务构建成一个工作流,设置好依赖关系,确保执行顺序。

可视化操作

文本文件

主要shell脚本

多类型,shell脚本任务、SQL任务、py脚本任务、spark任务、flink任务,轻松集成大数据处理框架和数据库系统。例如,在大数据分析场景中,可以使用ds调度spark任务进行数据处理,同时调度sql任务将处理后的数据存储到数据库中

本地系统上运行

分布式架构,在多节点的集群环境中运行,可通过worker节点扩容

6. dolphinscheduler的主要应用的背景,是大数据的各个强依赖

7. dolphinscheduler的特性:

8. 什么是有向无环图,无法从某个顶点出发,经过若干条边,回到该点。

安装步骤:

1. 购买云主机,主机名dolphinscheduler,4核8g,安装docker-ce,默认仓库的docker的版本25.0.2
2. 在dolphinscheduler官网下载源码包,将源码包传到linux机器,

https://dolphinscheduler.apache.org/zh-cn/download/3.1.8

3. 按照官方提供的docker-compose的方法启动dolphinscheduler项目,会提示拉不到镜像,所以需要到可用服务器拉镜像,打包发回到本地,load -i 加载到本地。

有个注意的点是,docker-compose之前是一个独立的软件,docker 20.10.0版本之后,变成docker的一个子命令了,所以直接docker compose起项目就可以了。

https://dolphinscheduler.apache.org/zh-cn/docs/3.1.8/guide/start/docker

$ DOLPHINSCHEDULER_VERSION=3.2.1
$ tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
# Mac Linux 用户
$ cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src/deploy/docker
# Windows 用户, `cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src\deploy\docker`

# 如果需要初始化或者升级数据库结构,需要指定profile为schema
$ docker-compose --profile schema up -d

# 启动dolphinscheduler所有服务,指定profile为all
$ docker-compose --profile all up -d

4. 购买可用云主机,配可用公网ip,安装docker,默认docker版本18.09.0。从docker官方拉镜像,docker save -o 保存到本地,然后tar -zxf打包

[root@ecs-dolphinscheduler docker]# pwd
/root/apache-dolphinscheduler-3.1.8-src/deploy/docker
[root@ecs-dolphinscheduler docker]# ls -A
docker-compose.yml  .docker-compose.yml.swp  docker-stack.yml  .env
[root@ecs-dolphinscheduler docker]# cat .env  | grep   "HUB"
HUB=apache
[root@ecs-dolphinscheduler docker]# cat .env  | grep   "TAG"
TAG=3.1.8
[root@ecs-dolphinscheduler docker]# pwd
/root/apache-dolphinscheduler-3.1.8-src/deploy/docker
[root@ecs-dolphinscheduler docker]# vim docker-compose.yml 
可以看到compose都需要哪些镜像。然后将变量HUB替换成apache,将TAG替换成3.1.8,在txt写出下方命令,批量复制粘贴到可用云主机,pull镜像
[root@ecs-hk ~]# docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
apache/dolphinscheduler-tools          3.1.8               6ace46fb52e5        15 months ago       262MB
apache/dolphinscheduler-master         3.1.8               3d9a81c2a310        15 months ago       413MB
apache/dolphinscheduler-worker         3.1.8               dfea0380e28b        15 months ago       417MB
apache/dolphinscheduler-api            3.1.8               6c89b3044b7e        15 months ago       441MB
apache/dolphinscheduler-alert-server   3.1.8               b230163c3799        15 months ago       313MB
bitnami/postgresql                     11.11.0             783da6164a58        3 years ago         258MB
bitnami/zookeeper                      3.6.2               aaec1c668136        3 years ago         467MB

docker pull bitnami/postgresql:11.11.0

docker pull bitnami/zookeeper:3.6.2

docker pull apache/dolphinscheduler-tools:3.1.8

docker pull apache/dolphinscheduler-api:3.1.8

docker pull apache/dolphinscheduler-alert-server:3.1.8

docker pull apache/dolphinscheduler-master:3.1.8

docker pull apache/dolphinscheduler-worker:3.1.8

5. 本地启动dolphinscheduler服务

6. 进入登录界面:

7. 数据账号密码登录 admin/dolphinscheduler

安装遇到的问题:

1. 从可用把镜像导入到本地主机之后,没有执行schema纲要,这一步,直接执行了all up这一步,alert和master的容器起不来,api的容器会unhealthy,所以登录界面打不开。

2. 在处理第一个问题之前,我以为是基础镜像没有导入过来的原因,所以先把基础镜像导入到本地机器的本地镜像仓库了。没有执行schema这一步,执行第三步all up,服务还是起不来。

3. 在处理前两个问题之前,我以为是4核8g的规格配置不够,所以升级成8核16g了。但是服务还是起不来。(后面变更为4核8g之后,服务还是能访问,ds的web页面可以打开,说明不是规格的问题)

4. 总之,核心原因是第一个,没有执行schema up,直接执行 all up。ds本身的镜像不知道需要不需要,理论上应该需要,但是这两个yaml文件里面都没提,所以暂时不能确定是需要还是不需要。从实际角度来讲,多一个基础镜像,即使不需要,应该也是没问题的。

api 为用户提供UI接口调用的服务

master 负责整个工作流调度

worker 具体执行工作流任务的workerflow

alert 工作流的异常和失败进行告警

租户tenant 对应的是linux用户,是worker提交作业,所使用的用户,如果linux没有这个用户,worker会在执行脚本的时候,创建这个用户

项目里面创建工作流,工作流里面创建任务


http://www.kler.cn/a/392988.html

相关文章:

  • Linux git-bash配置
  • 前端垂直居中的多种实现方式及应用分析
  • C++中的栈(Stack)和堆(Heap)
  • WebGIS三维地图框架--Cesium
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • 大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
  • Rust编写的贪吃蛇小游戏源代码解读
  • docker pull 网络不通
  • 01.Linux网络设置、FTP
  • 数据驱动的智能决策:民锋科技的量化分析方案
  • golang项目三层依赖架构,自底向上;依赖注入trpc\grpc
  • ES6进阶知识一
  • 【启程Golang之旅】一站式理解Go语言中的gRPC
  • 无人机反制技术与方法:主动防御,被动防御技术原理详解
  • Spring Boot编程训练系统:技术实现与案例分析
  • Linux服务器下oracle自动rman备份的实现
  • 从“大吼”到“轻触”,防爆手机如何改变危险油气环境通信?
  • 【JavaScript】
  • CentOS下如何安装Nginx
  • 音频采样数据格式
  • YOLOv7-0.1部分代码阅读笔记-general.py
  • 服务器集群的作用有什么?
  • vue2使用 <component> 标签动态渲染不同的表单组件
  • HarmonyOS Next星河版笔记--界面开发(4)
  • 算法——二分查找(leetcode704)
  • kafka和Flume的整合