我使用spark-submit和java -cp运行spark应用程序时有什么区别?

时间:2019-03-15 12:22:37

标签: java apache-spark

情况1:

  

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

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

情况2:

  

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

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

这两种方法有什么区别?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

希望有帮助...