首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得火花SUBMISSION_ID与火花提交?

如何获得火花SUBMISSION_ID与火花提交?
EN

Stack Overflow用户
提问于 2019-03-13 06:55:08
回答 1查看 4.1K关注 0票数 1

许多地方都需要SUBMISSION_ID,比如spark-submit --status和Spark。但是,当我使用SUBMISSION_ID命令提交火花作业时,如何获得这个spark-submit呢?

P.S.:

我使用python [popen][2]启动spark-submit作业。我想要SUBMISSION_ID,这样我的python程序就可以通过REST:<ip>:6066/v1/submissions/status/<SUBMISSION_ID>监视火花作业状态。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 08:14:44

多亏了潘迪的线索。https://stackoverflow.com/a/37980813/5634636的答案对我有很大帮助。

TL;DR

详细描述

注意:我只在ApacheSpark2.3.1上测试我的方法。我不能保证它也能在其他版本中工作。

让我们先澄清我的要求。有三个我想要的特征:

  1. 远程提交火花作业
  2. 随时检查作业状态(运行、错误、完成.)
  3. 如果有错误,请获取错误消息。

在本地提交

注意:此答案仅适用于集群模式。

火花工具spark-submit将有所帮助。

远程提交

建议使用火花提交API。似乎在Apache官方网站上没有任何文档,所以有些人称它为隐藏API。有关详细信息,请参阅:https://www.nitendragautam.com/spark/submit-apache-spark-job-with-rest-api/

  • 若要提交火花作业,请使用提交API
  • 要获得作业的状态,请使用status:http://<master-ip>:6066/v1/submissions/status/<submission-id>。当您提交作业时,submission-id将在json中返回。
  • 错误消息包含在状态消息中。
  • 关于错误消息的更多信息:注意状态错误和失败之间的区别。简而言之,失败意味着在执行火花作业过程中出现了一些错误(例如,未提及的异常),而错误则意味着在提交过程中出现了一些错误(例如无效的jar路径)。状态json中包含错误消息。如果要查看失败原因,可以通过http://<driver-ip>:<ui-port>/log/<submission-id>访问该原因。

下面是错误状态的一个示例(*是一个错误的jar路径,它是故意写错的):

代码语言:javascript
复制
{
  "action" : "SubmissionStatusResponse",
  "driverState" : "ERROR",
  "message" : "Exception from the cluster:\njava.io.FileNotFoundException: File hdfs:**** does not exist.\n\torg.apache.hadoop.hdfs.DistributedFileSystem.listStatusInternal(DistributedFileSystem.java:795)\n\torg.apache.hadoop.hdfs.DistributedFileSystem.access$700(DistributedFileSystem.java:106)\n\torg.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:853)\n\torg.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:849)\n\torg.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)\n\torg.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:860)\n\torg.apache.spark.util.Utils$.fetchHcfsFile(Utils.scala:727)\n\torg.apache.spark.util.Utils$.doFetchFile(Utils.scala:695)\n\torg.apache.spark.util.Utils$.fetchFile(Utils.scala:488)\n\torg.apache.spark.deploy.worker.DriverRunner.downloadUserJar(DriverRunner.scala:155)\n\torg.apache.spark.deploy.worker.DriverRunner.prepareAndRunDriver(DriverRunner.scala:173)\n\torg.apache.spark.deploy.worker.DriverRunner$$anon$1.run(DriverRunner.scala:92)",
  "serverSparkVersion" : "2.3.1",
  "submissionId" : "driver-20190315160943-0005",
  "success" : true,
  "workerHostPort" : "172.18.0.4:36962",
  "workerId" : "worker-20190306214522-172.18.0.4-36962"
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55136037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档