[英]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希望這會有用
可能的解決方案可能是:
編寫一個bash腳本並順序執行Spark程序。
將所有操作寫在一個程序中,然后在一個程序中調用每個操作並打印相應的結果。
只編寫一個程序,但要使用並行編程的原理。 這意味着並行執行此類操作。 好吧,這取決於您擁有什么類型的數據以及您想要獲得什么,很難評論。
您可以通過以下方式使用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.