[英]YARN REST API - Spark job submission
我正在嘗試使用YARN REST API來提交spark-submit作業,我通常通過命令行運行。
我的命令行spark-submit看起來像這樣
JAVA_HOME=/usr/local/java7/ HADOOP_CONF_DIR=/etc/hadoop/conf /usr/local/spark-1.5/bin/spark-submit \
--driver-class-path "/etc/hadoop/conf" \
--class MySparkJob \
--master yarn-cluster \
--conf "spark.executor.extraClassPath=/usr/local/hadoop/client/hadoop-*" \
--conf "spark.driver.extraClassPath=/usr/local/hadoop/client/hadoop-*" \
spark-job.jar --retry false --counter 10
閱讀YARN REST API文檔https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Applications_APISubmit_Application ,我試圖創建一個JSON有效負載到POST,看起來像
{
"am-container-spec": {
"commands": {
"command": "JAVA_HOME=/usr/local/java7/ HADOOP_CONF_DIR=/etc/hadoop/conf org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --jar spark-job.jar --class MySparkJob --arg --retry --arg false --arg --counter --arg 10"
},
"local-resources": {
"entry": [
{
"key": "spark-job.jar",
"value": {
"resource": "hdfs:///spark-job.jar",
"size": 3214567,
"timestamp": 1452408423000,
"type": "FILE",
"visibility": "APPLICATION"
}
}
]
}
},
"application-id": "application_11111111111111_0001",
"application-name": "test",
"application-type": "Spark"
}
我看到的問題是,hadoop configs目錄以前是我運行作業的機器本地的,現在我通過REST API提交作業,它直接在RM上運行,我不知道如何提供這些細節?
如果您嘗試通過REST API提交spark作業,我建議您查看Livy 。 這是向群集提交火花作業的簡單方法。
Livy是一個開源的REST接口,可以從任何地方與Apache Spark進行交互。 它支持在本地或Apache Hadoop YARN中運行的Spark上下文中執行代碼或程序的片段。
我們還嘗試通過Java RMI選項提交應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.