目前我正在使用 cassandra 为我的功能用例存储数据(向用户显示时间序列和合并数据)。如果您正确设计数据模型(查询驱动),Cassandra 非常擅长
基本上,数据由 Storm 从 RabbitMQ 提取并保存到 Cassandra
Lambda 架构只是大数据架构师和技术独立的设计模式,层可以组合:
Cassandra 是一个可以用作服务层和批处理层的数据库:我也将它用于 spark 的分析目的(因为数据已经在 cassandra 中格式化,如时间序列)
据我所知,需要考虑的一件大事是在任何处理之前存储您的原始数据。您需要这样做才能恢复任何基于人的问题(算法问题、PROD 中的 DROP TABLE,诸如此类可能发生的事情……)或供将来使用或主要用于批处理聚合
现在我面临一个选择:
目前我将其存储在 cassandra 中,但出于不同的原因,我正在考虑切换将原始数据存储在 HDFS 中:原始数据“已死”,使用 cassandra token ,使用 cassandra 集群中的资源(主要是磁盘空间)。
有人可以帮我做出选择吗?
最佳答案
HDFS 非常有意义。一些注意事项:
- 数据序列化 - 如果格式可变,则使用 ORC/Parquet 或 AVRO
- 数据压缩 - 始终压缩
- HDFS 不喜欢太多的小文件 - 在流式传输的情况下,有一个定期聚合和写入单个大文件的作业
- 有一个好的分区方案,这样你就可以在不浪费资源的情况下在 HDFS 上获取你想要的数据
关于hadoop - 大数据 - Lambda 架构和存储原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43409031/