【发布时间】:2017-07-04 20:48:22
【问题描述】:
我有一个 Spark streaming 程序以“yarn-cluster”模式在 Yarn Cluster 上运行。 (-master yarn-cluster)。 我想使用 json 格式的 REST API 获取 Spark 作业统计信息。 我能够使用 REST url 调用获取基本统计信息: http://yarn-cluster:8088/proxy/application_1446697245218_0091/metrics/json。但这只是给出了非常基本的统计数据。
但是我想获取每个执行程序或每个基于 RDD 的统计信息。 如何使用 REST 调用来做到这一点,以及在哪里可以找到准确的 REST url 以获取这些统计信息。 虽然 $SPARK_HOME/conf/metrics.properties 文件揭示了一些关于 url 的信息,即
5. MetricsServlet is added by default as a sink in master, worker and client driver, you can send http request "/metrics/json" to get a snapshot of all the registered metrics in json format. For master, requests "/metrics/master/json" and "/metrics/applications/json" can be sent seperately to get metrics snapshot of instance master and applications. MetricsServlet may not be configured by self.
但那是获取 html 页面而不是 json。只有“/metrics/json”以 json 格式获取统计信息。 除此之外,以编程方式了解 application_id 在纱线集群模式下运行时本身就是一个挑战。
我检查了Spark Monitoring page 的 REST API 部分,但是当我们在 yarn-cluster 模式下运行 spark 作业时,这不起作用。欢迎任何指针/答案。
【问题讨论】:
标签: hadoop-yarn spark-streaming