我正在尝试使用以下工具实现Lambda体系结构:Apache Kafka接收所有数据点,Spark进行批处理(大数据),Spark Streaming用于实时处理(快速数据),Cassandra用于存储结果。
此外,我接收到的所有数据点都与用户会话相关,因此,对于批处理,我只需要在会话完成后处理数据点。因此,由于我使用Kafka,解决此问题的唯一方法(假设所有数据点都存储在同一主题中)是让批处理获取主题中的所有消息,然后忽略那些对应尚未结束的会话的消息。
所以,我想问的是:
此外,我接收到的所有数据点都与用户会话相关,因此,对于批处理,我只需要在会话完成后处理数据点。因此,由于我使用Kafka,解决此问题的唯一方法(假设所有数据点都存储在同一主题中)是让批处理获取主题中的所有消息,然后忽略那些对应尚未结束的会话的消息。
所以,我想问的是:
- 这是实现Lambda体系结构的好方法吗?还是应该使用Hadoop和Storm?(我找不到有关人们使用Kafka和Apache Spark进行批处理,Map Reduce的信息)
- 是否有更好的方法来解决用户会话问题?