【发布时间】:2016-03-22 17:32:20
【问题描述】:
我目前正在研究 Spark 是否可以帮助提高我系统中组件的可伸缩性和故障转移,但我不太习惯这个库的概念。
我必须解决的一个简单用例:
- 我接收事件(通过各种端点,如 syslog/relp/database..)
- 如果一个事件在一个时间窗口内(从 1 小时到 24 小时)与旧事件“语义等价”,那么新事件应该与旧事件相关联,并且应该更新旧事件的数据(一些严重程度、原因等)
- 然后将事件发送到 ElasticSearch 集群
这个系统的延迟应该很低:如果我收到一个事件,它应该在不到 X 秒的时间内进入数据库。此外,评估事件“语义”的规则可以在不停止事件流的情况下更新。
目前,我使用一个简单的策略:事件只是存储在内存中(通过 hazelcast),但只有一个节点可以关联它们之间的事件。它不是真正可扩展的,也不是容错的。
看起来加入流可以帮助解决这种事情,但我湖具体的例子......
Spark 能否处理这种用例,同时具有可扩展性和容错性?我正在寻找一些关于流相关性的指针,同时对 Spark 进行容错(文档?示例?)
谢谢!
【问题讨论】:
标签: events apache-spark spark-streaming complex-event-processing