DolphinScheduler 调度flink任务

midoll 2,169 2022-03-29

DolphinScheduler 调度flink任务

今天想通过DolphinScheduler来调度flink任务,可能以后会遇到flink 作业调度问题,特别是一下批处理作业

安装

第一步当然是在开发环境安装DolphinScheduler;
官方文档:https://dolphinscheduler.apache.org/zh-cn/docs/3.1.2/guide/start/docker

简单贴几个步骤,

当然还是先安装docker-compose;

curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

你可以通过修改URL中的版本,可以自定义您的需要的版本。

将可执行权限赋予二进制文件:

chmod +x /usr/local/bin/docker-compose

创建软链接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

直接用docker-compose 安装dolphinScheduler

先到官网下载源码包
https://www.apache.org/dyn/closer.lua/dolphinscheduler/3.1.2/apache-dolphinscheduler-3.1.2-src.tar.gz

解压安装

$ tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
$ 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

提醒:通过 docker-compose 启动服务时,除了会启动 DolphinScheduler 对应的服务外,还会启动必要依赖服务,如数据库 PostgreSQL(用户 root, 密码 root, 数据库 dolphinscheduler) 和 服务发现 ZooKeeper。

使用时,上传资源文件会发现 存储未使用的报错
image-1673261520948
修改红色标注的地方解决,不要改base.path的路径,容器部署的默认路径做了挂载,你改的话就会有目录映射问题了;

容器安装一些常用命令

apt-get update

这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
更新完毕以后再敲命令:

apt-get install vim 安装vim

apt-get install telnet 安装telnet

apt-get install net-tools 安装ifconfig

apt install iputils-ping 安装ping

主要使用flink-client来提交作业
用docker cp 命令拷贝flink安装包进去就好了,可能还有一些jar包也要放进去,执行main方法时如果用到的话;

使用

flink作业调度

  • 建租户,用户,租户对应这linux的用户
  • 创建环境,指定flink的环境,我这里也设置了,但还是报找不到flink命令 ,然后我直接创建了软连接,ln -s /opt/soft/flink1.16.0/bin/flink /usr/bin/flink
  • 上传资源,即上传你要执行flink作业的jar包,到资源中心 文件管理上传就好了
  • 创建项目,定义工作流,编辑flink任务,选择环境,部署方式为local,因为我远程部署的flink是standalone的, 重要的是options参数要加上
-m <jobmanager>:8081

别加错了,有一次我就写到了main argument上

实际执行命令:

flink run -m 192.168.0.88:8081 -c cn.hrfax.buryingpoint.dwd.LoginEvent 8101jobs/8102-analytics-jobs.jar

如下图
image-1673262407998

注意: 这里有两种类型的flink任务,flink 和 flink_stream ,其中flink_stream表示实时流任务,只会提交一次,你重跑也是没用的

sql任务

要先配制数据源,我这里使用oracle数据库,一开始配置会报找不到jdbc驱动,把ojdbc驱动报复制到libs的目录,我这里api和worker都复制进去了。

最后上线,启动就好了,其它参数看着配吧


# flink # dophinScheduler