大数据 - Lambda架构和存储原始数据

时间:2017-04-14 09:40:20

标签: hadoop lambda cassandra

目前我正在使用cassandra为我的功能用例存储数据(向用户显示时间序列和合并数据)。如果您正确设计数据模型(查询驱动)

,Cassandra非常擅长

基本上,数据是通过Storm从RabbitMQ中获取并保存到Cassandra

Lambda架构只是大数据架构师和技术独立的设计模式,可以组合层:

Cassandra是一个可以用作服务层和数据库的数据库。批处理层:我也使用它作为我的分析目的也使用了spark(因为数据格式已经很好,就像时间序列一样,在cassandra中)

据我所知,需要考虑的一件事是在处理之前存储原始数据。您需要这样做才能恢复任何问题,基于人为(算法问题,PROD中的DROP TABLE,这种情况可能发生这种情况......)或未来使用或主要用于批量聚合

在这里,我面临一个选择:

目前我将其存储在cassandra中,但我考虑将原始数据存储在HDFS中,原因不同:原始数据是"死",使用cassandra令牌,使用资源(主要是磁盘空间)在cassandra集群中。

有人能帮助我做出这个选择吗?

2 个答案:

答案 0 :(得分:2)

HDFS非常有意义。一些注意事项:

  • 数据序列化 - 如果格式可变,则使用ORC / Parquet或AVRO
  • 压缩数据 - 始终压缩
  • HDFS不喜欢太多的小文件 - 如果流媒体有一个聚合和放大的工作定期写单个大文件
  • 拥有一个好的分区方案,这样您就可以在不浪费资源的情况下获取所需的HDFS数据

答案 1 :(得分:0)

hdfs更适合二进制文件。卡桑德拉是o.k.用于存储文件等的位置等,但只需要对纯文件进行建模,因此大多数人只是放弃了cassandra并抱怨它很糟糕。它仍然可以完成,如果你想这样做,有一些例子,如:  https://academy.datastax.com/resources/datastax-reference-application-killrvideo

可能会帮助您入门。

此外,问题还有更多关于quora的内容,甚至http://www.mail-archive.com/user@cassandra.apache.org/这个问题已被问到很多时间。