Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark submit覆盖默认应用程序.conf不工作_Apache Spark - Fatal编程技术网

Apache spark spark submit覆盖默认应用程序.conf不工作

Apache spark spark submit覆盖默认应用程序.conf不工作,apache-spark,Apache Spark,我正在构建一个jar,它在src/main/resources文件夹下有application.conf。但是,在执行spark submit时,我试图覆盖它。但是它不起作用 以下是我的命令 $spark_submit $spark_params $hbase_params \ --class com.abc.xyz.MYClass \ --files application.conf \ $sandbox_jar flagFile/test.FLG \ --co

我正在构建一个jar,它在
src/main/resources
文件夹下有
application.conf
。但是,在执行
spark submit
时,我试图覆盖它。但是它不起作用

以下是我的命令

$spark_submit $spark_params $hbase_params \
    --class com.abc.xyz.MYClass \
    --files application.conf \
    $sandbox_jar flagFile/test.FLG \
    --conf "spark.executor.extraClassPath=-Dconfig.file=application.conf"


application.conf
-与jar文件位于同一目录中

-Dconfig.file=path/to/config file
由于ConfigFactory上的内部缓存,可能无法工作。文档建议运行
ConfigFactory.invalidateCaches()

另一种方法是下面的方法,它将提供的属性与现有的可用属性合并

ConfigFactory.invalidateCaches()
val c = ConfigFactory.parseFile(new File(path-to-file + "/" + "application.conf"))
val config : Config = c.withFallback(ConfigFactory.load()).resolve


我认为覆盖属性的最好方法是使用
-D
提供它们。Typesafe赋予系统属性最高优先级,因此-D将覆盖reference.conf和application.conf

-Dconfig.file=path/to/config file
由于ConfigFactory上的内部缓存,可能无法工作。文档建议运行
ConfigFactory.invalidateCaches()

另一种方法是下面的方法,它将提供的属性与现有的可用属性合并

ConfigFactory.invalidateCaches()
val c = ConfigFactory.parseFile(new File(path-to-file + "/" + "application.conf"))
val config : Config = c.withFallback(ConfigFactory.load()).resolve


我认为覆盖属性的最好方法是使用
-D
提供它们。Typesafe赋予系统属性最高优先级,因此-D将覆盖reference.conf和application.conf

考虑application.conf是属性文件。还有其他选项,可以解决使用属性文件的相同目的

不确定,但使用jar打包属性文件可能无法提供灵活性?在这里,将属性文件与jar打包分开,这将提供灵活性,因为只要有任何属性更改,就只替换新的属性文件,而不是构建和部署整个jar

这可以通过以下方式实现:在属性文件中保留属性,并在属性键前面加上“spark”

Spark Submit命令会是这样的

$spark_submit $spark_params $hbase_params \
    --class com.abc.xyz.MYClass \
    --properties-file application.conf \
    $sandbox_jar flagFile/test.FLG 
在代码中获取属性,例如

sc.getConf.get("spark.inputpath")       // /input/path
sc.getConf.get("spark.outputpath")      // /output/path

不过,不一定能解决你的问题。但这里试着使用另一种方法。

考虑application.conf是属性文件。还有其他选项,可以解决使用属性文件的相同目的

不确定,但使用jar打包属性文件可能无法提供灵活性?在这里,将属性文件与jar打包分开,这将提供灵活性,因为只要有任何属性更改,就只替换新的属性文件,而不是构建和部署整个jar

这可以通过以下方式实现:在属性文件中保留属性,并在属性键前面加上“spark”

Spark Submit命令就像

$spark_submit $spark_params $hbase_params \
    --class com.abc.xyz.MYClass \
    --properties-file application.conf \
    $sandbox_jar flagFile/test.FLG 
在代码中获取属性,例如

sc.getConf.get("spark.inputpath")       // /input/path
sc.getConf.get("spark.outputpath")      // /output/path

不过,不一定能解决你的问题。但这里试着用另一种方法来解决问题。

我不明白你想说什么。我已经提供了这一选择。但它不起作用我错过了你的最后一行代码。对此我很抱歉。我也有类似的问题,我加载了文件并与Config对象合并。请参阅修改后的答案。您是否可以解释要处理
新文件的人
,以便从传递的参数中读取maven@Gaurang,一种方法是将application.conf保存在应用程序根目录中(与jar目录相同)。然后文件路径变成
System.getProperty(“user.dir”)
我的意思是。。当我将其作为maven参数传递时。它将如何解读这里的路径。无法理解你想说什么。我已经提供了这一选择。但它不起作用我错过了你的最后一行代码。对此我很抱歉。我也有类似的问题,我加载了文件并与Config对象合并。请参阅修改后的答案。您是否可以解释要处理
新文件的人
,以便从传递的参数中读取maven@Gaurang,一种方法是将application.conf保存在应用程序根目录中(与jar目录相同)。然后文件路径变成
System.getProperty(“user.dir”)
我的意思是。。当我将其作为maven参数传递时。它将如何读取这里的路径。