Là một nhà phát triển Cassandra, tôi tốt hơn nên trả lời phần còn lại của câu hỏi:
- Cassandra quy mô tốt hơn. Cassandra được biết là có quy mô tới hơn 400 nút trong một cụm ; khi Facebook triển khai Messaging trên HBase, họ phải chia nhỏ nó trên các cụm con HBase 100 nút .
- Cassandra hỗ trợ hàng trăm, thậm chí hàng nghìn ColumnFamilies. " HBase hiện không hoạt động tốt với bất cứ thứ gì trên hai hoặc ba họ cột ."
- Là một hệ thống phân tán hoàn toàn không có các nút hoặc quy trình "đặc biệt" , Cassandra dễ thiết lập và vận hành hơn, dễ khắc phục sự cố hơn và mạnh mẽ hơn.
- Sự hỗ trợ của Cassandra đối với sao chép đa tổng thể có nghĩa là bạn không chỉ có được sức mạnh rõ ràng của nhiều trung tâm dữ liệu - dư thừa địa lý, độ trễ cục bộ - mà bạn còn có thể chia khối lượng công việc phân tích và thời gian thực thành các nhóm riêng biệt, với thời gian thực, sao chép hai chiều giữa chúng . Nếu bạn không chia nhỏ các khối lượng công việc đó thì chúng sẽ cạnh tranh ngoạn mục.
- Bởi vì mỗi nút Cassandra quản lý bộ nhớ cục bộ của riêng mình, Cassandra có một lợi thế hiệu suất đáng kể mà không có khả năng bị thu hẹp đáng kể. (Ví dụ: thông lệ tiêu chuẩn là đặt cam kết Cassandra trên một thiết bị riêng biệt để nó có thể thực hiện việc ghi tuần tự mà không bị cản trở bởi i / o ngẫu nhiên từ các yêu cầu đọc.)
- Cassandra cho phép bạn chọn mức độ mạnh mẽ mà bạn muốn nó yêu cầu tính nhất quán trên cơ sở mỗi hoạt động. Đôi khi điều này bị hiểu nhầm là "Cassandra không mang lại cho bạn sự kiên định mạnh mẽ", nhưng điều đó là không chính xác.
- Cassandra cung cấp RandomPartitioner cũng như OrderedPartitioner giống Bigtable hơn. RandomPartitioner ít bị điểm nóng hơn nhiều.
- Cassandra cung cấp bộ nhớ đệm on-hoặc off-heap với hiệu suất tương đương với memcached, nhưng không có vấn đề về tính nhất quán của bộ nhớ cache hoặc sự phức tạp của việc yêu cầu thêm các bộ phận chuyển động
- Máy khách không phải Java không phải là công dân hạng hai
Theo hiểu biết của tôi, lợi thế chính mà HBase có ngay bây giờ (HBase 0.90.4 và Cassandra 0.8.4) là Cassandra chưa hỗ trợ nén dữ liệu trong suốt. (Điều này đã được thêm vào cho Cassandra 1.0 , sẽ ra mắt vào đầu tháng 10, nhưng ngày nay đó là một lợi thế thực sự cho HBase.) HBase cũng có thể được tối ưu hóa tốt hơn cho các loại quét phạm vi được thực hiện bởi xử lý hàng loạt Hadoop.
Cũng có một số thứ không nhất thiết phải tốt hơn, hoặc tệ hơn, chỉ là khác biệt. HBase tuân thủ nghiêm ngặt hơn mô hình dữ liệu Bigtable, trong đó mỗi cột được phiên bản ngầm. Cassandra bỏ lập phiên bản và thay vào đó thêm SuperColumns.
Hy vọng rằng sẽ giúp!