Spark Streaming - 获取批次级性能统计信息

时间:2017-04-11 01:01:33

标签: scala rest apache-spark spark-streaming

我正在设置一个Apache Spark群集来执行实时流式传输计算,并希望通过跟踪批量大小,批处理时间等各种指标来监控部署的性能。我的{{1}程序是用Spark Streaming

编写的

问题

  1. Spark monitoring REST API说明列出了可用的各种端点。但是,我找不到暴露批次级别信息的端点。有没有办法获取已为应用程序运行的所有Spark批次的列表以及其他每批次的详细信息,如下所示:
    • 每批次的事件数
    • 处理时间
    • 安排延迟
    • 退出状态:即批次是否成功处理
  2. 如果这样的批次级API不可用,可以通过向火花流程序添加自定义工具来获得批次级别的统计信息(例如:大小,处理时间,调度延迟等)。
  3. 提前致谢,

1 个答案:

答案 0 :(得分:3)

如果你没有运气1.这将有助于2。:

ssc.addStreamingListener(new JobListener());

// ...

class JobListener implements StreamingListener {

    @Override
    public void onBatchCompleted(StreamingListenerBatchCompleted batchCompleted) {

        System.out.println("Batch completed, Total delay :" + batchCompleted.batchInfo().totalDelay().get().toString() +  " ms");

    }

   /*

   snipped other methods

   */


}

取自In Spark Streaming, is there a way to detect when a batch has finished?

batchCompleted.batchInfo() contains

  • numRecords
  • batchTimeprocesssingStartTimeprocessingEndTime
  • schedulingDelay
  • outputOperationInfos

希望你能从这些房产中得到你需要的东西。