如何访问Spark Streaming应用程序的统计信息终结点?

内森·坎宁

从Spark 2.2.0开始,API中提供了新的端点来获取有关流作业的信息。

我在群集模式下使用Spark 2.2.0在EMR群集上运行Spark。

当我为我的流作业找到端点时,它给我的只是错误消息:

没有附加到<stream name>的流侦听器

我已经稍微研究了一下Spark代码库,但是该功能的文档记录不是很好。所以我很好奇这是一个错误吗?我需要做一些配置才能使此端点正常工作吗?


特别是在群集上运行时,这似乎是一个问题。在本地计算机上的Spark 2.2.0上运行的相同代码显示了预期的统计信息,但是在群集上运行时给出了该错误消息。

杰西克·拉斯考夫斯基(Jacek Laskowski)

我正在使用从master(即YMMV)那里构建的最新的Spark 2.3.0-SNAPSHOT工作正常。

我需要做一些配置才能使此端点正常工作吗?

否。在不更改默认配置的情况下应该可以正常工作。

确保您使用了驱动程序的主机和端口(有传言说您也可以访问18080Spark History Server,它确实显示了所有相同的终结点和正在运行的相同作业,但未附加流侦听器)。


如您在源代码中所看到的那样,错误消息仅在ui.getStreamingJobProgressListener未注册的地方(以结尾case None)会存在。

那么现在的问题是,为什么SparkListener不注册呢?

这使我们的streamingJobProgressListener VAR正在使用set setStreamingJobProgressListener方法完全StreamingTab 被实例化(这是为什么我要你的理由,如果你能看到的流标签)。

换句话说,如果您在Web UI中看到“流”选项卡,则可以使用流指标的端点。检查指向端点的URL,其格式应为:

http://[driverHost]:[port]/api/v1/applications/[appId]/streaming/statistics

我试图重现您的案子,并通过以下步骤使我想到了一个可行的案子。

  1. 开始了Spark Streaming应用程序的官方示例之一。

    $ ./bin/run-example streaming.StatefulNetworkWordCount localhost 9999
    

    我确实nc -lk 9999跑步了

  2. 打开Web UI @ http:// localhost:4040 / streaming以确保“ Streaming”选项卡在那里。

    流选项卡@ Web UI

  3. 确保http:// localhost:4040 / api / v1 / applications /使用应用程序ID进行响应。

    $ http http://localhost:4040/api/v1/applications/
    HTTP/1.1 200 OK
    Content-Encoding: gzip
    Content-Length: 266
    Content-Type: application/json
    Date: Wed, 13 Dec 2017 07:58:04 GMT
    Server: Jetty(9.3.z-SNAPSHOT)
    Vary: Accept-Encoding, User-Agent
    
    [
        {
            "attempts": [
                {
                    "appSparkVersion": "2.3.0-SNAPSHOT",
                    "completed": false,
                    "duration": 0,
                    "endTime": "1969-12-31T23:59:59.999GMT",
                    "endTimeEpoch": -1,
                    "lastUpdated": "2017-12-13T07:53:53.751GMT",
                    "lastUpdatedEpoch": 1513151633751,
                    "sparkUser": "jacek",
                    "startTime": "2017-12-13T07:53:53.751GMT",
                    "startTimeEpoch": 1513151633751
                }
            ],
            "id": "local-1513151634282",
            "name": "StatefulNetworkWordCount"
        }
    ]
    
  4. 访问了Spark Streaming应用程序的端点@ http:// localhost:4040 / api / v1 / applications / local-1513151634282 / streaming / statistics

    $ http http://localhost:4040/api/v1/applications/local-1513151634282/streaming/statistics
    HTTP/1.1 200 OK
    Content-Encoding: gzip
    Content-Length: 219
    Content-Type: application/json
    Date: Wed, 13 Dec 2017 08:00:10 GMT
    Server: Jetty(9.3.z-SNAPSHOT)
    Vary: Accept-Encoding, User-Agent
    
    {
        "avgInputRate": 0.0,
        "avgProcessingTime": 30,
        "avgSchedulingDelay": 0,
        "avgTotalDelay": 30,
        "batchDuration": 1000,
        "numActiveBatches": 0,
        "numActiveReceivers": 1,
        "numInactiveReceivers": 0,
        "numProcessedRecords": 0,
        "numReceivedRecords": 0,
        "numReceivers": 1,
        "numRetainedCompletedBatches": 376,
        "numTotalCompletedBatches": 376,
        "startTime": "2017-12-13T07:53:54.921GMT"
    }
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将当前站点终结点URL赋予javawebstart客户端应用程序

如何转移或共享在Microsoft应用程序注册门户中创建的应用程序。我正在使用Azure Active Directory和v2.0终结点

如何部署Spark Streaming应用程序?

使用Flume + Spark Streaming的示例字数统计应用程序

如何获取Winform应用程序使用情况的统计信息

如何在Spring 3.0应用程序中配置Hibernate统计信息?

Android Lollipop知道是否可以将应用程序作为使用情况统计信息访问

如何获取下载该应用程序的人的人口统计信息(年龄,性别)

如何在不重新启动或停止应用程序的情况下重置infinispan统计信息

如何获得Cloud Foundry Pivotal上托管的应用程序的统计信息(每秒请求数,响应时间)?

如何在Linux中以KB / MB /字节格式以及特定的端口或应用程序processID获取实时网络统计信息?

从Flask应用程序访问Spark

如何将 SharePoint 访问令牌从逻辑应用传递到 HTTP 终结点

在单独的线程中提供WSGI应用程序终结点?

从spark-shell(pyspark)查询Spark Streaming应用程序

如何访问休眠统计信息

Spark Streaming独立应用程序和依赖项

我的Spark Streaming应用程序中的OOM异常

Spark Streaming 应用程序启动时如何得到通知?

如何配置检查点以重新部署Spark Streaming应用程序?

如何在Spark Streaming应用程序中从Kafka接收Java对象

如何删除 spark -streaming 应用程序从 eventhub 接收消息生成的进度目录

如何在IntelliJ IDEA中使用Kafka Direct Stream运行Spark Streaming应用程序?

如何为 Spark Structured Streaming 应用程序构建 uber jar 到 MongoDB 接收器

如何将Spark Streaming应用程序的输出写入单个文件

如何限制对某些客户端的API终结点访问?

如何在AWS中访问ElasticSearch域终结点URL?

如何访问Lync Online(Office 365)的UCWA终结点?

如何允许用户授予Azure访问中的SaaS应用程序以显示其网络信息