进入org.apache.flink.client.cli.CliFrontend
查找main方法
在idea中 输入快捷键 Ctrl + O 找到main方法点击getConfigurationDirectoryFromEnv()方法
点击 ENV_FLINK_CONF_DIR发现这些东西,是在环境信息中去找(config.sh文件中)
获取conf路径,加载配置文件,点进去 loadConfiguration 方法点进去到118行发现是获取Flink yaml 文件信息。。
加载自定义命令行 ,点进去 loadCustomCommandLines 方法
1,GenericCLi客户端2,FlinkYarnSessionCLi客户端3,DefaultCLI 默认客户端顺序是1,2,3 最后才是Flink 自带的默认客户端执行集群程序
程序入口,点进去parseAndRun 方法点击 ACTION_RUN 进去查看 里面是 Flink 提交程序的命令行参数命令
点击 getRunCommandOptions 查看
这里面的内容无关紧要
点击 getCommandLine 方法(往上看第三个图中)(核心逻辑)
跳转,再跳转往下翻,如果参数不为空,则对 arguments 进行遍历,调用 handleToken方法
如果参数是 — 开头,就走handleLongOption 方法,如果参数是 - 开头就走 handleShortAndLongOption方法,核心就是用特定的字符串,做个区分,