如何在提交Spark作业时外部添加相关的jar。 还想知道如何使用应用程序Jar打包依赖的jar。
答案 0 :(得分:1)
这是一个很受欢迎的问题,我在stackoverflow中寻找了一些很好的答案,但我没有找到能够按照要求完全回答的问题,所以我会在这里尝试回答:
提交作业的最佳方式是使用spark-submit
脚本。这假设您已经有一个正在运行的集群(分布式或本地集群,并不重要)。
您可以在$SPARK_HOME/bin/spark-submit
下找到此脚本。
以下是一个例子:
spark-submit --name "YourAppNameHere" --class com.path.to.main --master spark://localhost:7077 --driver-memory 1G --conf spark.executor.memory=4g --conf spark.cores.max=100 theUberJar.jar
您为应用程序命名,您可以定义主类所在的位置以及spark master的位置(群集运行的位置)。您可以选择传递不同的参数。最后一个参数是包含 main 和所有依赖项的uberJar的名称。
theUberJar.jar 与您关于如何打包应用的第二个问题有关。如果您使用Scala,最好的方法是使用sbt并使用sbt-assembly创建一个超级jar。
以下是步骤:
sbt assembly
$SPARK_HOME/sbin/start-all.sh)