使用Apache Spark的Lambda架构

lui*_*ves 6 cassandra apache-kafka apache-spark lambda-architecture

我正在尝试使用以下工具实现Lambda架构:Apache Kafka用于接收所有数据点,Spark用于批处理(大数据),Spark Streaming用于实时(快速数据)和Cassandra用于存储结果.

此外,我收到的所有数据点都与用户会话有关,因此,对于批处理,我只对会话结束后处理数据点感兴趣.因此,由于我正在使用Kafka,解决此问题的唯一方法(假设所有数据点都存储在同一主题中)是批处理获取主题中的所有消息,然后忽略那些与会话相对应的消息尚未完成.

那么,我想问的是:

  • 这是实现Lambda架构的好方法吗?或者应该使用Haddop和Storm?(我无法找到有关使用Kafka和Apache Spark进行批处理的人员的信息,Map Reduce)
  • 有没有更好的方法来解决用户会话问题?

谢谢.

Dea*_*ler 5

这是一个很好的方法.对速度层和批处理层使用Spark 可以让您编写一次逻辑并在两种情况下使用它.

关于你的会话问题,既然你是在批处理模式下这样做,为什么不只是将数据从Kafka摄取到HDFS或Cassandra,然后在那里写完整个会话的查询?您可以使用Spark Streaming与Kafka的"直接连接"来执行此操作.