在java中可以不用spark-submit吗?

Rol*_*ndo 13 java apache-spark

我被告知有一个火花集群在"remote-host-num1:7077"上运行,"remote-host-num2:7077""remote-host-num3:7077"上有多个节点.

如果我编写一个执行以下操作的程序:

    SparkConf conf = new SparkConf().setAppName("org.sparkexample.TestCount").setMaster("spark://remote-host-num1:7077");
    JavaSparkContext sc = new JavaSparkContext(conf);
Run Code Online (Sandbox Code Playgroud)

并从sc.textFile创建JavaRDD"myrdd",并执行类似于使用"myrdd.count()"获取其计数的操作.此操作是否利用了远程集群中的所有计算机?

我想确保,因为我不想使用spark-submit"myjarfile",如果我可以避免它.如果必须,我该怎么办?如果我必须使用spark-submit来利用多个机器上的spark的分布式特性,有没有办法在Java中以编程方式执行此操作?

小智 6

是的,在spark-1.4.x中添加了支持,用于将scala/java spark应用程序作为子进程提交.您可以在org.apache.spark.launcher类的javaDocs中查看更多详细信息.下面的链接是spark文档中引用的位置.

https://spark.apache.org/docs/latest/programming-guide.html#launching-spark-jobs-from-java--scala