0

我有一个使用 sparkapplauncher 启动多个 Spark 应用程序的客户端。此客户端的日志使用 log4j.properties 文件进行记录。我希望这些启动的 spark 应用程序像普通的 spark 作业一样按照 log4j.configuration 写入日志,但是这些会不断被重定向到控制台。log4j 文件具有基于客户端应用程序设置的 applicationID 和标记的动态路径。


SparkLauncher spark = new SparkLauncher()
                    .setVerbose(true)
                    .setAppName("Spark Launcher Test")
                    .setJavaHome(javaHome)
                    .setSparkHome(sparkHome)
                    .setAppResource(appResource)    // "/my/app.jar"
                    .setMainClass(mainClass)        // "my.spark.app.Main"
                    .setMaster("local")
                    .setConf("spark.execution.log.base","/Users/b0219039/Desktop/client_logs/")
                    .setConf("spark.yarn.tags","source2")
                    .addFile(log4jfile)
                    .setPropertiesFile(log4jfile)
                    .setConf(SparkLauncher.DRIVER_MEMORY, "1g")
                    .setConf(SparkLauncher.EXECUTOR_MEMORY, "1g")
                    .setConf(SparkLauncher.EXECUTOR_CORES, "4")
                    .setConf(SparkLauncher.EXECUTOR_CORES, "4")
                    .setConf(SparkLauncher.EXECUTOR_EXTRA_JAVA_OPTIONS ,"-Dlog4j.configuration="+log4jfileclient)
                    .setConf(SparkLauncher.DRIVER_EXTRA_JAVA_OPTIONS ,"-Dlog4j.configuration="+log4jfileclient)
                    .addAppArgs(appArgs);

4

0 回答 0