Cassandra 追求的解决方案与 Hadoop 有所不同。 Cassandra 擅长大容量实时事务处理,而 Hadoop 擅长更多面向批处理的分析解决方案。
Cassandra 和 Hadoop 在架构/实现上的差异是什么导致了这种使用上的差异。 (在外行软件专业术语中)
最佳答案
我想补充一点,因为我认为这里可能存在误导性的说法,即 Cassandra 可能在读取方面表现良好。 Cassandra 也不是很擅长随机读取,与其他解决方案相比,它在如何随机读取大量数据方面很好,但在某些时候,如果读取真的是随机的,你就无法避免每次都访问磁盘单次很昂贵,根据您的集群,它可能会变成每秒几千次点击这样无用的东西,因此计划进行大量随机查询可能不是最好的,如果您开始,您会遇到困难那样想。我想说的是,当您进行顺序读取或找到一种顺序存储它们的方法时,大数据中的所有内容都会更好地工作。大多数情况下,即使您进行实时处理,您仍然希望找到一种方法来批处理您的查询。 这就是为什么您需要事先考虑存储在 key 下的内容,并尝试从读取中获取尽可能多的信息。 声明在同一句话中说交易和 Cassandra 也很有趣,因为这实际上并没有发生。 另一方面,hadoop 几乎按定义是批处理的,但 hadoop 是分布式 map reduce 框架,而不是数据库,事实上,我已经看到并使用了很多 hadoop over cassandra,它们不是对抗技术。 实时处理大数据是可行的,但需要认真思考并关心何时以及如何访问数据库。
编辑:删除了二级索引示例,因为我上次检查时使用了随机读取(尽管我已经离开 Cassandra 一年多了)。
关于hadoop - cassandra 和 hadoop - 实时与批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13350293/