2015-11-19 49 views
1

在我的lambda架构中,我在讨论是否使用HDFS或Cassandra来存储我的不可变数据。我需要Cassandra来处理在线请求等,因此它是技术栈的强制性部分。现在,如果我不需要,我不想将新工具(HDFS)引入到堆栈中。所以我的问题是,如果我不使用HDFS并使用Cassandra来托管我的不可变数据,我将会丢失什么。HDFS或Cassandra?

编辑:

我明白HDFS是一种分布式文件系统,Cassandra是的NoSQL数据库。尽管如此,两者都支持数据复制,都支持高吞吐量写入。另外Cassandra支持低潜在数据检索。所以我说得对,HDFS不会给我提供太多的帮助吗?

+1

HDFS是一个分布式文件系统,而不是数据库。我认为要问的“正确”问题是“_HBase_ vs Cassandra?”,而不是“HDFS vs Cassandra?”。 –

+0

@MattBall我意识到这一点。看到我的编辑 –

+0

对不起,我没有看到编辑...? –

回答

0

据我所知您正试图阐明您的Lambda架构的服务层。 如果确实如此,您希望将批处理视图和实时视图存储到数据库中。 而据我所知,你的批处理层没有Hadoop集群。 您的批处理视图尚未在HDFS中完成。 此时您的架构不在HDFS中。 HBase是一个构建在Hadoop文件系统之上的分布式列式数据库。它是一个开源项目,可以横向扩展。 如果您不想要hadoop群集,请省略HBase。 Cassandra分布式NoSQL数据库(面向列),它在Hadoop集群和HDFS之外工作。 如果我理解你的架构和你的需求,我认为卡桑德拉最适合你。

此外,您可以从此链接获得有关Lambda架构的快速信息; http://artofbigdata.blogspot.com.tr/2016/01/lambda-architecture.html

0

HDFS支持不同的文件格式存储。例如,序列文件,Avro和Parquet等。因此,您可以选择适合您的应用程序需求的文件格式。

另请注意,您可以使用类似SQL的查询高效地读取数据。

因此,不同的数据模型可以在HDFS上通过Cassandra获得以承载数据。