首页 > 解决方案 > 使用 spark-submit 和 java -cp 运行 spark 应用程序有什么区别?

问题描述

情况1:

spark-submit --class main.Test --master local[4] /path/Test.jar

SparkSession sparkSession = SparkSession.builder()
    .appName("Test")
    .getOrCreate();

案例二:

java -cp /path/Test.jar com.main.Test

SparkSession sparkSession = SparkSession.builder()
    .appName("Test")
    .master("local[4]")
    .getOrCreate();

这两种方法有什么区别?

标签: javaapache-spark

解决方案


没有大的区别。您可能会发现更多与部署相关的问题。

案例1:您可能需要一个超级/超级罐子来确保一切都在一起。

案例 2:在某些情况下,例如 AWS EMR(至少直到最近),您不能使用:

SparkSession sparkSession = SparkSession.builder()
    .appName("Test")
    .master(<emr cluster's ip>)
    .getOrCreate();

通常情况 1 是开发,情况 2 是部署。但是没有义务。

希望能帮助到你...


推荐阅读