将jar添加到spark应用程序

时间:2015-08-05 19:03:24

标签: jar apache-spark

当我运行spark-submit时,我提供了大量的罐子路径,然后是'--jars'选项:

./spark\-submit --class "AppName" --master spark://server24:7077 --jars /path1.jar,path2.jar,path3.jar /pathAppName_2.10-1.0.jar arg1 arg2

是否有更简洁的方法在上面的命令中包含jars文件后跟-jar?

我尝试将它们添加到spark-defaults.conf中的spark.driver.extraClassPath,但这似乎没有帮助。否则无法在spark文档中找到任何内容。

有人知道吗?

2 个答案:

答案 0 :(得分:1)

您可以在创建SparkContext时指定您依赖的jar:

val conf = new SparkConf()
             .setMaster('local[*]')
             .setAppName('example')
             .setJars(Array('/path/to/dependencies/first.jar',
                            '/path/to/dependencies/second.jar'))

val sc = new SparkContext(conf)

当你使用spark-submit的--jars参数时,这基本上就是在幕后发生的事情。

答案 1 :(得分:0)

我在Java Spark应用程序中解决这个问题的方法是使用maven shade插件创建一个包含所有外部依赖项的胖包装jar。否则,如果您使用scala,this link可能会对您有所帮助。对于java,我会引用this

就使用Spark开箱即用的另一种方法而言,我认为没有更清洁的方式 - 至少如果我从未找到过。