YarnRESTAPI-spark作业提交

nwsw7zdq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(863)

我尝试使用yarn restapi提交spark提交作业,我通常通过命令行运行。
我的命令行如下所示

  1. JAVA_HOME=/usr/local/java7/ HADOOP_CONF_DIR=/etc/hadoop/conf /usr/local/spark-1.5/bin/spark-submit \
  2. --driver-class-path "/etc/hadoop/conf" \
  3. --class MySparkJob \
  4. --master yarn-cluster \
  5. --conf "spark.executor.extraClassPath=/usr/local/hadoop/client/hadoop-*" \
  6. --conf "spark.driver.extraClassPath=/usr/local/hadoop/client/hadoop-*" \
  7. spark-job.jar --retry false --counter 10

阅读yarn restapi文档https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/resourcemanagerrest.html#cluster_applications_apisubmit_application,我尝试创建json负载来发布

  1. {
  2. "am-container-spec": {
  3. "commands": {
  4. "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"
  5. },
  6. "local-resources": {
  7. "entry": [
  8. {
  9. "key": "spark-job.jar",
  10. "value": {
  11. "resource": "hdfs:///spark-job.jar",
  12. "size": 3214567,
  13. "timestamp": 1452408423000,
  14. "type": "FILE",
  15. "visibility": "APPLICATION"
  16. }
  17. }
  18. ]
  19. }
  20. },
  21. "application-id": "application_11111111111111_0001",
  22. "application-name": "test",
  23. "application-type": "Spark"
  24. }

我看到的问题是,hadoop configs目录以前是运行作业的机器的本地目录,现在我通过restapi提交作业,它直接在rm上运行,我不知道如何提供这些详细信息?

k4ymrczo

k4ymrczo1#

如果你想通过restapi提交spark作业,我建议你看看livy。向集群提交spark作业是一种简单而简单的方法。
livy是一个开源rest接口,可以在任何地方与apachespark进行交互。它支持在本地或apachehadoop中运行的spark上下文中执行代码片段或程序。
交互式scala、python和r shell
scala、java、python中的批提交
多个用户可以共享同一服务器(模拟支持)
可以使用rest从任何地方提交作业
不需要对程序进行任何代码更改
我们还尝试了通过javarmi选项提交应用程序。

相关问题