当前位置:  开发笔记 > 前端 > 正文

如何在纱线群集模式下运行时使用REST调用获取Spark Streaming作业统计信息

如何解决《如何在纱线群集模式下运行时使用REST调用获取SparkStreaming作业统计信息》经验,为你挑选了1个好方法。

我在" 纱线群集 "模式下在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文件对网址有所了解,即

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页面的 REST API部分,但是当我们在yarn-cluster模式下运行spark job时,这没有用.欢迎提出任何指示/答案.



1> user5728085..:

您应该能够使用以下方法访问Spark REST API:

HTTP://纱簇:8088 /代理/ application_1446697245218_0091/API/V1 /应用/

从这里,您可以从列表中选择app-id,然后使用以下端点获取有关执行程序的信息,例如:

http:// yarn-cluster:8088/proxy/application_1446697245218_0091/api/v1/applications / {app-id}/executors

我使用在纱线群集模式下运行的火花流应用程序验证了这一点.

我将解释如何使用Web浏览器获得JSON响应.(这是针对纱线群集模式下的Spark 1.5.2流应用程序).

首先,使用hadoop url查看RUNNING应用程序.HTTP:// {纱簇}:8088 /簇/应用/ RUNNING.

接下来,选择正在运行的应用程序,例如http:// {yarn-cluster}:8088/cluster/app/application_1450927949656_0021.

接下来,单击TrackingUrl链接.这使用代理,端口在我的情况下是不同的:http:// {yarn-proxy} l:20888/proxy/application_1450927949656_0021 /.这显示了火花UI.现在,将api/v1/applications附加到此URL:http:// {yarn-proxy} l:20888/proxy/application_1450927949656_0021/api/v1/applications.

您应该看到一个JSON响应,其中包含提供给SparkConf的应用程序名称以及应用程序的开始时间.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有