我也是刚看到YarnLogConfigUtil有这么一段代码:
    public static String getLoggingYarnCommand(final Configuration
configuration) {
        checkNotNull(configuration);

        final String logConfigFilePath =

configuration.getString(YarnConfigOptionsInternal.APPLICATION_LOG_CONFIG_FILE);
        if (logConfigFilePath == null) {
            return "";
        }

        String logCommand = getLog4jCommand(logConfigFilePath);
        if (logCommand.isEmpty()) {
            logCommand = getLogBackCommand(logConfigFilePath);
        }
        return logCommand;
    }
但是YarnConfigOptionsInternal貌似不让用户设置,加了单引号才可以。应该能解决这个问题了。
谢谢。

Qishang <zhongqish...@gmail.com> 于2022年4月27日周三 17:35写道:

> Hi .
> 代码好像是没有设置
> 用这个手动设置一下
> set $internal.deployment.config-dir=/opt/flink-1.14.3/conf
>
> 调用链路的话,凑合看一下吧。下面就是获取到 YarnJobClusterExecutorFactory  ->
> YarnJobClusterExecutor -> YarnClusterClientFactory -> YarnClusterDescriptor
>
> getExecutorFactory:58, DefaultExecutorServiceLoader
> (org.apache.flink.core.execution)
> executeAsync:2032, StreamExecutionEnvironment
> (org.apache.flink.streaming.api.environment)
> executeAsync:95, DefaultExecutor
> (org.apache.flink.table.planner.delegation)
> executeQueryOperation:811, TableEnvironmentImpl
> (org.apache.flink.table.api.internal)
> executeInternal:1274, TableEnvironmentImpl
> (org.apache.flink.table.api.internal)
> lambda$executeOperation$3:209, LocalExecutor
> (org.apache.flink.table.client.gateway.local)
> wrapClassLoader:88, ExecutionContext
> (org.apache.flink.table.client.gateway.context)
> executeOperation:209, LocalExecutor
> (org.apache.flink.table.client.gateway.local)
> executeQuery:231, LocalExecutor
> (org.apache.flink.table.client.gateway.local)
> callSelect:532, CliClient (org.apache.flink.table.client.cli)
> callOperation:423, CliClient (org.apache.flink.table.client.cli)
> lambda$executeStatement$1:332, CliClient
> (org.apache.flink.table.client.cli)
> executeStatement:325, CliClient (org.apache.flink.table.client.cli)
> executeInteractive:297, CliClient (org.apache.flink.table.client.cli)
> executeInInteractiveMode:221, CliClient (org.apache.flink.table.client.cli)
> openCli:151, SqlClient (org.apache.flink.table.client)
> start:95, SqlClient (org.apache.flink.table.client)
> startClient:187, SqlClient (org.apache.flink.table.client)
> main:161, SqlClient (org.apache.flink.table.client)
>
> ruiyun wan <wryinv...@gmail.com> 于2022年4月27日周三 14:51写道:
>
> >
> 这个必须有,因为用yarn-session.sh创建集群会有jobmanager.log。能够找到yarn-session.sh的启动类(org.apache.flink.yarn.cli.FlinkYarnSessionCli)到
> > YarnClusterDescriptor的调用路径。
> > [image: image.png]
> > 但是我没有找到从sql-client.sh的启动类(org.apache.flink.table.client.SqlClient)到
> > YarnClusterDescriptor的调用路径。这两者不在同一个包。
> >
> > Qishang <zhongqish...@gmail.com> 于2022年4月27日周三 13:46写道:
> >
> >> Hi.
> >> 确认下 conf 下,是否有 log4j.properties
> >>
> >> 应该是在这个地放生成的,
> >>
> >>
> https://github.com/apache/flink/blob/release-1.13/flink-yarn/src/main/java/org/apache/flink/yarn/YarnClusterDescriptor.java#L1699
> >>
> >>
> >> ruiyun wan <wryinv...@gmail.com> 于2022年4月26日周二 14:41写道:
> >>
> >> > Flink版本:1.13
> >> > 问题描述:使用sql-client.sh启动yarn-per-job(execution.target =
> >> >
> >> >
> >>
> yarn-per-job)时,在YARN集群侧生成的launch_container.sh中,启动org.apache.flink.yarn.entrypoint.YarnJobClusterEntrypoint的参数中无-Dlog.file和-Dlog4j.configuration属性参数,导致没有jobmanager.log日志文件,如何设置才能影响Yarn生成的launch_container.sh包含上述参数。
> >> >
> >>
> >
>

回复