将 jars 添加到 spark 应用程序
Posted
技术标签:
【中文标题】将 jars 添加到 spark 应用程序【英文标题】:Adding jars to a spark app 【发布时间】:2015-08-05 19:03:23 【问题描述】:当前,当我运行 spark-submit 时,我会提供一大堆 jar 路径,后跟“--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 文档中找不到任何内容。
有人知道吗?
【问题讨论】:
【参考方案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 参数时,这基本上是在幕后发生的事情。
【讨论】:
【参考方案2】:我在我的 Java Spark 应用程序中解决这个问题的方法是使用 maven shade 插件创建一个包含所有外部依赖项的胖包装 jar。否则,如果您使用的是 scala,this link 可能会对您有所帮助。对于java,我会参考this。
就使用 Spark 开箱即用的另一种方法而言,我认为没有更清洁的方法 - 至少如果我从未找到的话。
【讨论】:
以上是关于将 jars 添加到 spark 应用程序的主要内容,如果未能解决你的问题,请参考以下文章