在独立群集上提交spark Jobs

时间:2016-05-18 21:16:46

标签: apache-spark

如何在提交Spark作业时外部添加相关的jar。 还想知道如何使用应用程序Jar打包依赖的jar。

1 个答案:

答案 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)
  • 使用步骤1中的超级jar
  • 将应用程序提交到正在运行的群集