簡體   English   中英

如何從單獨的Java程序中在群集上運行Spark程序?

[英]How to run a spark program on cluster from within a separate java program?

我有一個運行單獨的小型Spark程序的Java程序,那么如何使我的Java程序在集群上運行小型Spark模塊/程序?

例如:我有一個程序名稱executor(java program)。

和一些星火程序-加兩個數字-減去兩個數字

因此,在這種情況下,如何從我的Java程序(即執行程序)在Cluster上運行那些spark程序。

謝謝!!!

檢查Spark Job Server Project,讓您創建一個共享的contex並從rest接口執行作業: https : //github.com/spark-jobserver/spark-jobserver希望這會有用

可能的解決方案可能是:

  1. 編寫一個bash腳本並順序執行Spark程序。

  2. 將所有操作寫在一個程序中,然后在一個程序中調用每個操作並打印相應的結果。

  3. 只編寫一個程序,但要使用並行編程的原理。 這意味着並行執行此類操作。 好吧,這取決於您擁有什么類型的數據以及您想要獲得什么,很難評論。

您可以通過以下方式使用SparkLauncher:

import org.apache.spark.launcher.SparkLauncher
import scala.collection.JavaConverters._


val env = Map(
  "HADOOP_CONF_DIR" -> hadoopConfDir,
  "YARN_CONF_DIR" -> yarnConfDir
)

println(env.asJava)
val process = new SparkLauncher(env.asJava)
  .setSparkHome(sparkHome)
  .setAppResource(jarPath)
  .setAppName(appName)
  .setMainClass(className) //Main class in your uber spark JAR 
  .setMaster(master)
  //.setConf("spark.driver.memory", "2g") example additional conf prop
  .setVerbose(true)
  .launch()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM