1 NoSQL
HBase是一种NoSQL数据库,HBase实际上更像是数据存储而不是数据库,相比RDBMS它缺少列类型,二级索引,触发器以及高级的查询语言等。
然而,HBase支持线性和模块化扩展,它有以下特性:
- 读写强一致性:不是最终一致性,方便高速聚合计数。
- 自动分片:HBase tables依据regions分布于集群,随着数据的增长,regions自动split和重新分布于集群。
- RegionServer自动故障转移。
- Hadoop/HDFS集成:作为支撑的分布式文件系统。
- MapReduce:HBasa支持大规模并行处理,HBase既可以作为source也可以作为sink。
- Java Client API
- Thrift/REST API:非Java前端
- Block Cache and Bloom Filters:大规模查询优化
- 操作管理:WEB UI与JMX Metrics。
2 什么时候用HBase
- 大数据量,数亿或10亿级别,百万级别请用RDBMS。
- 在不需要额外的RDBM特性下,可以完成需求。
- 确保大量硬件:5 Nodes+。
3 HBase与Hadoop/HDFS区别
没啥关系,就是文件系统和数据的关系,也就是HBase在内部StoreFiles
对应Hadoop中HFile
。