为什么使用HBase
比使用更好的选择Cassandra
with Hadoop
?
任何人都可以对此进行详细解释吗?
谢谢
为什么使用HBase
比使用更好的选择Cassandra
with Hadoop
?
任何人都可以对此进行详细解释吗?
谢谢
我不认为两者都比其他更好,它不仅仅是一个或另一个。这些是非常不同的系统,每个都有自己的优点和缺点,所以这真的取决于你的用例。它们绝对可以在同一基础设施中相互补充使用。
为了更好地解释这种差异,我想从Cassandra 借一张图片:权威指南,他们在那里讨论了 CAP 定理。他们所说的基本上对于任何分布式系统,你必须在一致性、可用性和分区容限之间找到一个平衡点,你只能现实地满足其中的两个属性。从中可以看出:
对于 Hadoop,HBase 构建在 HDFS 之上,如果您已经拥有 Hadoop 堆栈,则使用起来非常方便。Cloudera 也支持它,它是 Hadoop 的标准企业发行版。
但是 Cassandra 还与 Hadoop 有更多的集成,即 Datastax Brisk,它越来越受欢迎。您现在还可以使用一些 Cassandra 提供的输出格式(例如)将数据从 Hadoop 作业的输出本地流式传输到 Cassandra 集群BulkOutputFormat
,我们不再是 Cassandra 只是一个独立项目的地步。
根据我的经验,我发现 Cassandra 非常适合随机读取,而不是扫描
为了给图片增添一点色彩,我在同一个基础设施中的工作中一直使用这两种方法,而 HBase 的用途与 Cassandra 完全不同。我主要将 Cassandra 用于实时非常快速的查找,而我更多地将 HBase 用于具有较低延迟要求的繁重 ETL 批处理作业。
这是一个真正值得写一篇博文的问题,所以我不想继续往下说,而是想给你看一篇文章,它总结了这两个系统之间的许多关键差异。底线是,恕我直言,没有更好的解决方案,您应该真正考虑一下您的用例,看看哪个系统更适合。
我们必须比较两个数据库的优缺点,并根据业务需求做出谨慎的决定。
卡桑德拉
优点:
缺点:
HBase
优点:
缺点: