taz*_*azo 5 hadoop hadoop-yarn apache-spark
我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)
通过纱线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"
}
Run Code Online (Sandbox Code Playgroud)
我看到的问题是,Hadoop的CONFIGS目录是以前本地我是从运行作业的机器,现在我通过REST API提交作业,还是直接对RM,我不知道如何提供这些细节?
如果您尝试通过 REST API 提交 Spark 作业,我建议您查看Livy。这是将 Spark 作业提交到集群的一种简单且最简单的方法。
Livy 是一个开源 REST 接口,用于从任何地方与 Apache Spark 交互。它支持在本地或 Apache Hadoop YARN 中运行的 Spark 上下文中执行代码或程序片段。
我们还尝试通过 Java RMI 选项提交应用程序。
| 归档时间: |
|
| 查看次数: |
2021 次 |
| 最近记录: |