亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

HBase和Cassandra的區別?

HBase和Cassandra的區別?

查看完整描述

1 回答

?
老糊涂仙

TA貢獻10條經驗 獲得超2個贊

兩個都用過,學過,雖然是NoSQL,但是它們從本質上完全不同(想了解各種不同的NoSQL,推薦看老Martin的NoSQL Distilled這本書)。這里只點出最重要的不同:數據的集中和分散

HBase基于Big Table,和Hadoop MapReduce完美integrate,數據組織以支持scan為最優先(rowkey 按大小排序分region,所以相近的rowkey必然在相同的region server上),甚至每一個get操作的內部實現都是scan。所以你的應用場景需要大量scan操作 或者需要經常配合MapReduce,而random access數據為輔助手段,那么HBase是你的絕佳選擇。

Cassandra基于我司的Dynamo,強調自由配置CAP中的C(consistance)和A(availability),強調讀寫的分散(由于數據都用Distibute Key散列到了不同host,所以相近的Distibute key很大幾率散列到不同的host上,這里取決于你的hash算法,這里只說大多數情況)。這種storage model(consistent hash)決定了Cassandra的scan效率比HBase低,但是可以支持更高的并發寫與讀,并且高并發寫和讀可以在不同的配置的情況下在一個表上同時實現(由于讀寫的replica number是可以基于per request 定義的)如果你需要高并發可調節讀寫,scan需求少,那么Cassandra則比HBase更合適。

其他的不同就是各種feature了,比如cassandra支持用戶自定義multi version control,multi version conflict resolve,算是一個亮點,而HBase貌似只支持multi version… cassandra的server是peer to peer的,完全不會有single point failure;而HBase則依賴于Master Server的協調… 等等

綜上所述,兩種NoSQL DB cover了兩種完全不同的data access pattern,他們倆 完全 不雷同。

至于國內注重HBase?個人猜測嘛,還不是為了跟風hadoop催的… 為人必提大數據,提大數據必提hadoop,hadoop怎么存數據?HFile?那怎么random access? 然后...恩....
Canssandra提供了太多可調節的地方了,調不好可以比MySQL還慢…

查看完整回答
1 反對 回復 2018-04-20
  • 1 回答
  • 0 關注
  • 2090 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號