公司 leader 分配了一个任务 ,将 Flink 1.11 新发布的 Application Mode 给集成到平台里面。
第一反应就是直接拼接一个 shell 命令 ,如
./bin/flink run-application -t yarn-application \
-Djobmanager.memory.process.size=2048m \
-Dtaskmanager.memory.process.size=4096m \
./examples/batch/WordCount.jar
然后把这个拼接好的命令发到对应部署了 Flink 客户端的服务器执行就好了。但是这就要求必须在对应服务器上部署一个执行程序,或者叫做执行代理。相当于多了一个额外的服务,最好是能直接通过 Java Api 嵌套在业务代码里面就行了。 去看了一下 Flink CliFrontend 源码和网上的博客 给实现了,然后发现 Flink 1.11 这个新特性确实好用,提交的性能提升不少。
下面重点记录一下遇到的一些问题。