由于开发中会经常提交测试flink应用,并且在某些特殊场景(如服务器以为宕机,手动停机)下需要对大量的flink应用启动,所以考虑开发这套工具。
这套工具具备了选择jar包,选择jar包下入口,避免了手动输入的繁琐场景,配备自动查找最新的checkpoint,常用的process内存,mamaged内存,slot数量以及jobmanage的heap内存和offheap内存,并且提供了一建启动yarn-session,一键上传jar包,并且同步留存历史jar包,即使出现了错了也可以手动恢复。
1.PyQt
1.1下载pyqt包
pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyqt5-stubs -i https://pypi.tuna.tsinghua.edu.cn/simple
1.2IDE配置PyQt(pycharm为例)
需要以自己的python目录为主找依赖
程序:D:\anacnda\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
工作目录:$ProjectFileDir$\ui
程序:D:\anacnda\python.exe
参数:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$_designed.py
工作目录:$FileDir$
程序:D:\anacnda\Scripts\pyrcc5.exe
参数:$FileName$ -o $FileNameWithoutExtension$_rc.py
工作目录:$FileDir$
2.设计面板
2.1 画好需要的界面
2.2 有限的选择可以预先设置好内容
2.3 将文件转换为py
保存后回到pycharm,选中生成的文件.ui
3.开发各个模块
3.1 获取jar包名,class名以及flink run需要的appName和Ckeckpoint Path/name
3.1.1数据库建表
create table flink_job
(
id bigint auto_increment
primary key,
jar varchar(200) default '' not null comment 'jar',
class varchar(200) default '' not null comment '入口',
appname varchar(200) default '' not null comment '应用名',
ckname varchar(200) default '' not null comment 'checkpointName'
);
3.1.2添加测试数据
3.1.3构建开发function
使用pymysql构建读取和写入模块
import pymysql
import flinkcommitconf as conf
class FLINKCOMMITDB:
def __init__(self):
self.db = pymysql.connect(host=