Spark Streaming执行流程

时间:2017-06-20 08:15:34

标签: apache-spark spark-streaming

我是Spark Streaming的新手,我有同样的疑问

  1. 我们是否需要不止一个遗嘱执行人或我们能够完成工作
  2. 我使用createDirectStream从kafka中提取数据,这是一种接收器更少的方法,批处理持续时间是一分钟,因此我的数据是在一个批次中接收,然后在其他批处理期间处理或同时处理
  3. 如果同时处理,那么如何确保我的处理在批处理期间完成
  4. 如何使用该Web UI进行监控和调试

2 个答案:

答案 0 :(得分:0)

  

我们是否总是需要一个以上的遗嘱执行人或一个我们可以完成工作的人

取决于:)。如果您的流量非常小,那么很可能一台机器代码就负载而言就足够了。在容错方面,这可能不是一个好主意,因为单个执行程序可能崩溃并使整个流出错。

  

我使用createDirectStream从kafka中提取数据   接收器较少的方法和批处理持续时间是一分钟,我的数据也是如此   收到一批,然后在其他批次处理   持续时间或同时处理

您的数据每分钟读取一次并进行处理,并且只有在整个作业完成后才会继续下一次。只要您的批处理时间少于一分钟,就不会有问题。如果处理时间超过一分钟,您将开始累积延迟。

  

如果同时处理,那么我的保证如何   处理是在批处理期间完成的吗?

只要您不将spark.streaming.concurrentJobs设置为1以上,就会一次执行一个流式图表。

  

如何使用该Web UI监视和调试

对于SO来说,这个问题通常过于宽泛。我建议从提交应用程序后创建的Streaming选项卡开始,然后开始深入了解每个批处理详细信息并继续从那里开始。

答案 1 :(得分:0)

在监控上添加更多内容

  

如何使用该Web UI监视和调试

在localhost:4040的Streaming选项卡中监控您的应用程序,要查找的主要指标是处理时间计划延迟。看一下官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html#monitoring-applications

  

批次持续时间为一分钟

您的批处理持续时间有点长,尝试使用较低的值进行调整以提高延迟时间。 4秒可以是一个好的开始。

在Graphite上监控这些指标并设置警报也是一个好主意。看看这篇文章https://stackoverflow.com/a/29983398/3535853