【问题标题】:Spark and events correlations火花和事件相关性
【发布时间】:2016-03-22 17:32:20
【问题描述】:

我目前正在研究 Spark 是否可以帮助提高我系统中组件的可伸缩性和故障转移,但我不太习惯这个库的概念。

我必须解决的一个简单用例:

  1. 我接收事件(通过各种端点,如 syslog/relp/database..)
  2. 如果一个事件在一个时间窗口内(从 1 小时到 24 小时)与旧事件“语义等价”,那么新事件应该与旧事件相关联,并且应该更新旧事件的数据(一些严重程度、原因等)
  3. 然后将事件发送到 ElasticSearch 集群

这个系统的延迟应该很低:如果我收到一个事件,它应该在不到 X 秒的时间内进入数据库。此外,评估事件“语义”的规则可以在不停止事件流的情况下更新。

目前,我使用一个简单的策略:事件只是存储在内存中(通过 hazelcast),但只有一个节点可以关联它们之间的事件。它不是真正可扩展的,也不是容错的。

看起来加入流可以帮助解决这种事情,但我湖具体的例子......

Spark 能否处理这种用例,同时具有可扩展性和容错性?我正在寻找一些关于流相关性的指针,同时对 Spark 进行容错(文档?示例?)

谢谢!

【问题讨论】:

    标签: events apache-spark spark-streaming complex-event-processing


    【解决方案1】:

    我假设您想使用 Spark Streaming。

    在 Spark 中执行此操作的一种可能性可能是通过使用 updateStateByKey 函数来引入状态,这意味着实际实现状态。 你可以在官方文档中找到描述,这里是example

    另一种可能是使用 Spark Streaming 中的内置窗口函数。再次查看官方文档。

    【讨论】:

    • 谢谢,我去看看
    【解决方案2】:

    应该可以使用logstash 和elasticsearch。在您的 logstash 配置中,您可以监控任何事件的唯一标识,并基于该标识对 elasticsearch 进行查询。它将在一次搜索中列出所有相关事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多