我正在使用一个管理spark,mr和tez应用程序的纱线集群。我想计算所有已完成的应用程序从接受状态转换到运行状态所经过的平均时间。我的问题是:
谢谢!
答案 0 :(得分:1)
对于每个YARN应用程序,您都可以跟踪应用程序ID。通过使用此应用程序ID对Timeline Server (Port 8188)
和JobHistory Server (Port 19888)
进行REST调用,您可以计算出所需的时间。
每个应用程序都有application_<epoch time at the submission>_<4-digit index number>
格式的默认名称。用application_
替换开头的job_
,即可获得作业ID。现在使用以下格式的URL对HistoryServer进行REST调用:
http://<IP of your cluster-manager>:19888/ws/v1/history/mapreduce/jobs/<Job ID>
您将获得包含字段submitTime
和startTime
的XML或JSON响应(它)。它们是在纪元毫秒。差异是所需的值。
对于TEZ,监控是根据与每个应用程序关联的定向非循环图进行的。因此,您需要直观并进行以下REST调用:
http://<IP of your cluster-manager>:8188/ws/v1/timeline/TEZ_DAG_ID
你得到了很大的回应。对于每个DAG ID,您需要查看DAG的Primary Identifiers
,并且您将找到与每个DAG关联的应用程序ID。只需获取应用程序的submitTime
和startTime
即可获得差异。
http://<IP of your cluster-manager>:19888
中输入来查看历史记录服务器并从那里查看应用程序数据来执行类似操作。答案 1 :(得分:0)
我们如何获得火花工作的提交时间?
我尝试了http :: 18080 / api / v1 / applications api,但它没有提供提交时间。