Apache spark 在独立群集上提交spark作业

Apache spark 在独立群集上提交spark作业,apache-spark,Apache Spark,如何在提交Spark作业时从外部添加依赖JAR。 还想知道如何用应用程序Jar打包依赖Jar。这是一个流行的问题,我在stackoverflow中寻找了一些好的答案,但没有找到完全符合要求的答案,因此我将尝试在这里回答: 提交作业的最佳方式是使用spark submit脚本。这假设您已经有了一个正在运行的集群(分布式的或本地的,没有关系) 您可以在$SPARK\u HOME/bin/SPARK submit下找到此脚本 以下是一个例子: spark-submit --name "YourApp

如何在提交Spark作业时从外部添加依赖JAR。
还想知道如何用应用程序Jar打包依赖Jar。

这是一个流行的问题,我在stackoverflow中寻找了一些好的答案,但没有找到完全符合要求的答案,因此我将尝试在这里回答:


提交作业的最佳方式是使用
spark submit
脚本。这假设您已经有了一个正在运行的集群(分布式的或本地的,没有关系)

您可以在
$SPARK\u 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并使用创建uber jar

以下是步骤:

  • 使用
    sbt程序集
  • 启动群集(
    $SPARK\u HOME/sbin/Start all.sh)
  • 使用步骤1中的uber jar将应用提交到正在运行的集群

spark submit脚本()的文档中是否没有描述这一点?如果没有,你能更具体一点吗?下面的答案有用吗?