【问题标题】:Big Data - Lambda Architecture and Storing Raw Data大数据 - Lambda 架构和存储原始数据
【发布时间】:2017-09-10 13:34:26
【问题描述】:

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

基本上,Storm 从 RabbitMQ 摄取数据并保存到 Cassandra

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

Cassandra 是一个可以用作服务层和批处理层的数据库:我也将它用于我的 Spark 分析目的(因为数据在 cassandra 中已经很好地格式化,如时间序列)

据我所知,要考虑的一件大事是在进行任何处理之前存储您的原始数据。您需要执行此操作以恢复任何基于人为的问题(算法问题、PROD 中的 DROP TABLE 等可能发生的事情......)或以备将来使用或主要用于批量聚合

在这里我面临一个选择:

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

有人可以帮我做这个选择吗?

【问题讨论】:

    标签: hadoop lambda cassandra


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我正在考虑将原始数据分组到日目录中,例如 /day1/ 对于小文件问题,我计划使用 HDFS 序列文件。你认为我会为我的原始数据节省一些磁盘空间切换到 HDFS 吗?无论如何我要测试它,谢谢!
    • 永远不要对文件进行排序!非常庞大,读取效率很高。看看 ORC 或 Parquet。
    【解决方案2】:

    hdfs 是二进制文件的更好主意。卡桑德拉没事。用于存储文件所在的位置等,但只需要对纯文件进行非常好的建模,所以大多数人只是放弃了 cassandra 并抱怨它很糟糕。它仍然可以完成,如果您想这样做,有一些示例,例如: https://academy.datastax.com/resources/datastax-reference-application-killrvideo

    这可能会帮助您入门。

    这个问题对于quora甚至http://www.mail-archive.com/user@cassandra.apache.org/来说更重要,这个问题已经问了很多时间了。

    【讨论】:

      猜你喜欢
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      相关资源
      最近更新 更多