Is it right that Cassandra is good for write and less read, whereas HBASE is good for random read and write? Heard that facebook replaces Cassandra with HBASE
解决方案
Yes: fb started building Cassandra, put it OpenSource, and migrated to HBase later on.
I'm not exactly sure why but Cassandra and HBase are both good solutions.
Cassandra has benefits being
+ HA (no SPOF),
+ having tunable Consistency, and
+ doing writes faster than reads (both are rather fast)
- But Cassandra may increase network traffic as coordinator nodes have to communicate with target nodes.
- Cassandra does it's own data storage whereas HBase uses HDFS by default. I strongly assume this was the reason to switch because fb has massive amounts of data and with HBase they analyze it with less overhead -- but with a Single Point of Failure.
HBase excels
+ when strong Consistency is mandatory and
+ Hadoop integration
- But HMaster is a SPOF
Yes: Cassandra is very fast writing bulk data in sequence and reading them sequentially. HBase is very good at random IO because of HDFS. In performance comparisons Cassandra is in general slightly faster in throughput; HBase is slightly faster at latency.
From operations perspective is Cassandra very easy to maintain as it is very reliable and a robust systems architecture. HBase is hard to setup and less robust because of HMaster and the by standing Zookeeper cluster needed.
So in the end it's totally up to your problem. I never heart anybody avoiding Cassandra; so I think HBase was just better.