Spark Java客户端忽略spark-defaults.conf中的extraClassPath

时间:2019-03-14 10:15:05

标签: java apache-spark

当我在应用程序中使用Java API客户端并连接到Spark集群时,将忽略参数spark.executor.extraClassPath。

我已经在spark-defaults.conf中设置了参数:

spark.executor.extraClassPath  /absolute/path/my-jar.jar

我认为在spark-defaults.conf文件中声明它可以使我不必在Java应用程序中对其进行硬编码。 硬编码迫使我用绝对路径声明所有jar,因为知道它们不在我的应用程序运行的同一台机器上。

我已经编写了一些代码来处理数据集并在Java应用程序中获取结果:

SparkConf sparkConfig = new SparkConf().setAppName("HelloWorldApp")
                                       .setMaster("spark://my.cluster.master:7077")
                                       .set("spark.submit.deployMode", "cluster")
                                       // It works when I set this programmatically
                                       // but exception is thrown when I don't do it
                                       .set("spark.executor.extraClassPath", "/remote/node/absolute/path/my-jar.jar");

SparkSession sparkSession = SparkSession.builder().config(sparkConfig).getOrCreate();

// Here I start playing with datasets to return some results

当我未在应用程序中对“ spark.executor.extraClassPath”进行硬编码时,spark-default.conf也将被忽略。

这是正常现象吗?我错过了什么吗?

0 个答案:

没有答案