背景
开发过程中会将JAR提交到Flink上集群上运行,结果发现有错。
然后改代码、cancel老的job、删除老的jar包,上传新的jar包,运行新的jar包。
然后上面的步骤一天重复个N次。累。于是用python,结合Flink Rest Api的说明文档,搞个脚本去跑。
Flink Rest API官网地址:https://ci.apache.org/projects/flink/flink-docs-release-1.7/monitoring/rest_api.html
运行环境:Flink Cluster on k8s, 脚本本地windows上执行
实现 & Code
脚本过程分为4步骤:
- 根据Job名称查找运行的Job,cancel掉他
- 根据Jar名称,删除老的Jar包
- 上传新的Jar包
- 把新的Jar包 run起来
import requests
import re
from requests_toolbelt import MultipartEncoder
def job_overview(name):
"""
获取包含指定名称的在运行job
:param name:
:return:
"""
response = requests.get(BASE_URL + "/jobs/overview")
rj = response.json()
jobs = rj.get("jobs")
for job in jobs:
job_id = job.get("jid")
job_name = job.get("name"<