一、flink通过per-job启动后有几大进程
- CliFrontend 对应主类:org.apache.flink.client.cli.CliFrontend
通过 "$bin"/config.sh 加载环境配置
- taskExecutorRunner
- YarnJobClusterEntrypoint
二、客户端类详细解读及细节
Implementation of a simple command line frontend for executing programs
实现一个面前前端的用于执行程序的简单命令行
final String configurationDirectory = getConfigurationDirectoryFromEnv();
final Configuration configuration =
GlobalConfiguration.loadConfiguration(configurationDirectory);
final List<CustomCommandLine> customCommandLines =
loadCustomCommandLines(configuration, configurationDirectory);
final CustomCommandLine activeCommandLine =
validateAndGetActiveCommandLine(checkNotNull(commandLine));
final ProgramOptions programOptions = ProgramOptions.create(commandLine);
final List<URL> jobJars = getJobJarAndDependencies(programOptions);
final Configuration effectiveConfiguration =
getEffectiveConfiguration(activeCommandLine, commandLine, programOptions, jobJars);
LOG.debug("Effective executor configuration: {}", effectiveConfiguration);
try (PackagedProgram program = getPackagedProgram(programOptions, effectiveConfiguration)) {
executeProgram(effectiveConfiguration, program);
}