2017-06-20 122 views
1

我是一个新手,以星火流和我有一个关于同样喜欢星火流执行流

  1. 难道一定需要一个以上的遗嘱执行人或用一个我们可以做我们的工作
  2. 我有些疑惑使用createDirectStream这是接收机少的方法和批料的持续时间为一分钟从卡夫卡拉出数据,所以是我的数据被接收为一个批量,然后在其它批量持续时间期间处理或者它被同时处理
  3. 如果同时处理然后是如何它保证我的处理是在持续时间分批完成
  4. 如何使用该Web界面来监控和调试

回答

0

我们需要总是不止一个执行人,或与一个我们可以做我们的工作

这取决于:)。如果你的流量进来的体积非常小,它很可能是一个机器代码的负载而言足够了。在容错能力可能不是一个很好的主意,因为一个单一的执行可能会崩溃,让你的整个流故障的条款。

我从卡夫卡使用createDirectStream是 接收机少的方法和批料的持续时间为一分钟牵引的数据,因此是我的数据 接收到用于一个批次,然后加工期间的其他批次 持续时间或它被同时处理每分钟一次

你的数据被读取,处理,而且仅是整个工作完成后,将继续到下一个。只要您的批处理时间少于一分钟,就不会有问题。如果处理时间超过一分钟,您将开始累积延迟。

如果它被同时处理,那么如何确保我的 处理在批处理持续时间内完成?

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

如何使用该Web界面来监控和调试

这个问题通常是SO过于宽泛。我建议开始与获取一旦你提交申请,并开始深入到每个细节批次,并从那里继续创建的流标签。

+0

spark.streaming.concurrentJobs是由单一的执行者执行的作业的数量,所以你怎么表现会受到影响,而且是推荐它是超过1 – JSR29

+0

你能提供了解Web UI的资源 – JSR29

+0

@ JSR29 concurrentJobs意味着您可以一次执行两个作业(例如,如果其中一个作业拖延了一分多钟,第二个作业仍会执行)。 –

0

要添加更多的监测

如何使用该Web界面来监控和调试

监测流标签应用程序在localhost:4040,主要指标来寻找是处理时间调度延迟。看一看的官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html#monitoring-applications

批量持续时间为一分钟

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

此外,在Graphite上监控这些指标并设置警报是个好主意。看看这个帖子https://stackoverflow.com/a/29983398/3535853

+0

如何比较使用较低或较高批处理持续时间的资源使用情况 – JSR29