HBase Cassandra比较
| Cassandra | HBase | |
| 一致性 | Quorum NRW策略
通过Gossip协议同步Merkle Tree,维护集群节点间的数据一致性 |
单节点,无复制,强一致性 |
| 可用性 | 1,基于Consistent Hash相邻节点复制数据,数据存在于多个节点,无单点故障。
2,某节点宕机,hash到该节点的新数据自动路由到下一节点做 hinted handoff,源节点恢复后,推送回源节点。 3,通过Gossip协议维护集群所有节点的健康状态,并发送同步请求,维护数据一致性。 4,SSTable,纯文件,单机可靠性一般。 |
1,存在单点故障,Region Server宕机后,短时间内该server维护的region无法访问,等待failover生效。
2,通过Master维护各Region Server健康状况和Region分布。 3,多个Master,Master宕机有zookeeper的paxos投票机制选取下一任Master。Master就算全宕机,也不影响Region读写。Master仅充当一个自动运维角色。 4,HDFS为分布式存储引擎,一备三,高可靠,0数据丢失。 5,HDFS的namenode是一个SPOF。 |
| 伸缩性 | 1,Consistent Hash,快速定位数据所在节点。
2,扩容需在Hash Ring上多个节点间调整数据分布。 |
1,通过Zookeeper定位目标Region Server,最后定位Region。
2,Region Server扩容,通过将自身发布到Master,Master均匀分布。 |
| 负载均
衡 |
请求Zookeeper取得整个集群地址,然后根据Consistent Hash选择合适的节点。client会缓存集群地址。 | 请求Zookeeper取读写数据路由表定位Region Server,Master会修改这个路由表。Client自身也会缓存一部分路由信息。 |
| 数据差异比较算法 | Merkle Tree , Bloom Filter | Bloom Filter |
| 锁与事务 | Client Timestap(Dynamo使用vector lock) | Optimistic Concurrency Control |
| 读写性能 | 数据读写定位非常快。 | 数据读写定位可能要通过最多6次的网络RPC,性能较低。 |
| CAP点评 | 1,弱一致性,数据可能丢失。
2,可用性高。 3,扩容方便。 |
1,强一致性,0数据丢失。
2,可用性低。 3,扩容方便。 |
HBase Cassandra比较的更多相关文章
- HBase Cassandra Riak HyperTable
Cassandra HBase 一致性 Quorum NRW策略 通过Goss ...
- Golang tool:include spider library,image library and some other db library such as mysql,redis,mogodb,hbase,cassandra
一.Go_tool This is a tool library for Golang.Dont't worry about not understant it! All comment writes ...
- HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已!
理解HBase(一个开源的Google的BigTable实际应用)最大的困难是HBase的数据结构概念究竟是什么?首先HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不 ...
- NoSQL: Cassandra, HBase, RocksDB
转自: http://www.linkedin.com/pulse/nosql-cassandra-hbase-rocksdb-siddharth-anand I've had the pleasur ...
- Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型
Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', ...
- NOSQL之旅---HBase
最近因为项目原因,研究了Cassandra,Hbase等几个NoSQL数据库,最终决定采用HBase.在这里,我就向大家分享一下自己对HBase的理解. 在说HBase之前,我想再唠叨几句.做互联网应 ...
- 【DB】HBase的基本概念
一 Hbase是个啥东东? 在说Hase是个啥家伙之前,首先我们来看看两个概念.面向行存储和面向列存储.面向行存储.我相信大伙儿应该都清楚,我们熟悉的RDBMS就是此种类型的.面向行存储的数据库主要 ...
- YCSB测试HBase远程完全分布式集群
写在前面 本文只讲一个很简单的问题,YCSB对HBase集群的测试.虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的.大家都知道,稍微正式一些的压测都会要求测试客 ...
- HBase底层存储原理
HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已! 首先HBase不同于一般的关系数据库, 它是一个适合于非结构化数据存储的数 ...
随机推荐
- Linux系统下实时监控网口速率的shell脚本
修改后的脚本文件 #!/bin/bash #Modified by lifei4@datangmobile.cn echo ===DTmobile NetSpeedMonitor=== sleep 1 ...
- jQuery实现图片预览
摘自:http://www.cnblogs.com/leejersey/p/3660202.html JS代码: /* *名称:图片上传本地预览插件 v1.1 *作者:周祥 *时间:2013年11月2 ...
- Python简单实现邮件群发
Python简单实现邮件群发 import smtplib from email.mime.text import MIMEText from email.utils import formatadd ...
- Matlab/Simulink仿真中如何将Scope转化为Figure?
1.只需要在运行仿真后,在命令窗口内输入: ,'ShowHiddenHandle','on'); set(gcf,'menubar','figure'); scope最上方会出现一个菜单栏,选择Too ...
- 目标检测之R-FCN
R-FCN:Object Detection via Region-based Fully Convolutional Networks R-FCN的网络结构 一个Base的convolutional ...
- MySQL数据库Date型数据插入问题
MySQL数据库中,Date型数据插入问题,总是提示如下错误: “java.util.Date cannot be cast to java.sql.Date” 解决办法: 1.首先,获取Date型数 ...
- APP数据埋点分类方式
1.数据埋点的重要性 在现实工作中,数据的整体流程为:数据生产-数据采集-数据处理-数据分析和挖掘-数据可视化,其中,数据采集是很重要的一个环节,数据采集得全不全.对不对,直接决定数据广度和质 ...
- SqlAlchemy基本
安装SQLAlchemy: $ easy_install sqlalchemy 数据库表是一个二维表,包含多行多列 [ ('1', 'Michael'), ('2', 'Bob'), ('3', 'A ...
- 基于WinIO 3.0实现驱动级键盘模拟输入
基于WinIO 3.0实现驱动级键盘模拟输入 一个业务场景需要使用驱动级的键盘模拟,折腾了2天,总结一下,为后人节省时间. 限制条件: 1.需要真实PC机,虚拟机不行 2.仅支持PS/2 键盘(指外接 ...
- hadoop22---wait,notify
vv wait和notify,是要加syschronized的,是要获取锁的,wait是释放控制权,别的线程就可以执行了,notify和notifyall是通知其他线程执行.