为什么使用 HBase 一个比使用 Cassandra 与 Hadoop ?有人能详细解释一下吗?谢谢
HBase
Cassandra
Hadoop
jum4pzuy1#
我们必须比较两个数据库的优缺点,并根据业务需求做出谨慎的决定。Cassandra赞成的意见:满足cap理论的可用性和划分以及最终一致性。可扩展的大型集群,无单点故障类似sql的开发语言允许开发人员轻松地从rdbms后台过渡只要最终的一致性语义对于用例来说足够,cassandra就具有出色的单行读取性能税收的支持是一大优势针对写入进行了优化欺骗:不支持基于范围的行扫描不支持原子比较和设置cassandra不支持协处理器功能`cassandra支持列名已知的列族的二级索引(不在动态列上)。cassandra节点不支持cassandra中的聚合数据库赞成的意见:强一致性与满足一致性&帽理论的划分。rdbms等价触发器和存储过程hadoop支持基于范围的行扫描支持原子比较和设置针对读进行了优化,由单写主机支持支持聚合高可扩展性和数据自动分片欺骗:缺乏友好的发展语言不支持针对单行的读取负载平衡行间操作不是原子的如果只使用了一个hbase主机,则会出现单点故障请看第1条、第2条和本演示文稿以了解更多详细信息。
xj3cbfub2#
我不认为这两个都比其他的好,这不只是一个或另一个。这些是非常不同的系统,每个系统都有各自的优点和缺点,因此这实际上取决于您的用例。它们肯定可以在同一基础设施中相互补充使用。为了更好地解释这种差异,我想借用Cassandra的一幅图:权威指南,在那里他们讨论了cap定理。他们所说的基本上是对于任何分布式系统,您必须在一致性、可用性和分区容限之间找到一个平衡点,并且您实际上只能满足其中的两个属性。由此可以看出:cassandra满足可用性和分区容限特性。hbase满足一致性和分区容限特性。说到hadoop,hbase是构建在hdfs之上的,如果您已经有了hadoop堆栈,那么使用它就非常方便。cloudera也支持它,它是hadoop的标准企业发行版。但是cassandra也与hadoop有更多的集成,即datastax brisk,它正变得越来越流行。现在,您还可以使用cassandra提供的输出格式,将hadoop作业的输出中的数据以本机方式流式传输到cassandra集群中( BulkOutputFormat 例如),我们不再是Cassandra只是一个独立的项目。根据我的经验,我发现cassandra对于随机读取非常棒,而对于扫描则不是那么棒为了给图片增添一点色彩,我在同一个基础架构中使用了这两种方法,hbase的用途与cassandra截然不同。我主要使用cassandra进行实时快速查找,而更多使用hbase进行延迟要求较低的重型etl批处理作业。这是一个值得在博客上发表文章的问题,因此我不想再继续下去了,我想让你看一篇文章,它总结了两个系统之间的许多关键区别。底线是,imho没有更好的解决方案,您应该认真考虑您的用例,看看哪个系统更适合。
BulkOutputFormat
2条答案
按热度按时间jum4pzuy1#
我们必须比较两个数据库的优缺点,并根据业务需求做出谨慎的决定。
Cassandra
赞成的意见:
满足cap理论的可用性和划分以及最终一致性。
可扩展的大型集群,无单点故障
类似sql的开发语言允许开发人员轻松地从rdbms后台过渡
只要最终的一致性语义对于用例来说足够,cassandra就具有出色的单行读取性能
税收的支持是一大优势
针对写入进行了优化
欺骗:
不支持基于范围的行扫描
不支持原子比较和设置
cassandra不支持协处理器功能`
cassandra支持列名已知的列族的二级索引(不在动态列上)。
cassandra节点不支持cassandra中的聚合
数据库
赞成的意见:
强一致性与满足一致性&帽理论的划分。
rdbms等价触发器和存储过程
hadoop支持
基于范围的行扫描
支持原子比较和设置
针对读进行了优化,由单写主机支持
支持聚合
高可扩展性和数据自动分片
欺骗:
缺乏友好的发展语言
不支持针对单行的读取负载平衡
行间操作不是原子的
如果只使用了一个hbase主机,则会出现单点故障
请看第1条、第2条和本演示文稿以了解更多详细信息。
xj3cbfub2#
我不认为这两个都比其他的好,这不只是一个或另一个。这些是非常不同的系统,每个系统都有各自的优点和缺点,因此这实际上取决于您的用例。它们肯定可以在同一基础设施中相互补充使用。
为了更好地解释这种差异,我想借用Cassandra的一幅图:权威指南,在那里他们讨论了cap定理。他们所说的基本上是对于任何分布式系统,您必须在一致性、可用性和分区容限之间找到一个平衡点,并且您实际上只能满足其中的两个属性。由此可以看出:
cassandra满足可用性和分区容限特性。
hbase满足一致性和分区容限特性。
说到hadoop,hbase是构建在hdfs之上的,如果您已经有了hadoop堆栈,那么使用它就非常方便。cloudera也支持它,它是hadoop的标准企业发行版。
但是cassandra也与hadoop有更多的集成,即datastax brisk,它正变得越来越流行。现在,您还可以使用cassandra提供的输出格式,将hadoop作业的输出中的数据以本机方式流式传输到cassandra集群中(
BulkOutputFormat
例如),我们不再是Cassandra只是一个独立的项目。根据我的经验,我发现cassandra对于随机读取非常棒,而对于扫描则不是那么棒
为了给图片增添一点色彩,我在同一个基础架构中使用了这两种方法,hbase的用途与cassandra截然不同。我主要使用cassandra进行实时快速查找,而更多使用hbase进行延迟要求较低的重型etl批处理作业。
这是一个值得在博客上发表文章的问题,因此我不想再继续下去了,我想让你看一篇文章,它总结了两个系统之间的许多关键区别。底线是,imho没有更好的解决方案,您应该认真考虑您的用例,看看哪个系统更适合。