基础知识篇(一)
什么是HBase
“Apache HBase is the Hadoop database , a distributed , scalable , big data staore.”–HBase官网。
- HBase是Hadoop的数据库,用于分布式、可伸缩的大数据存储。
- HBase可以用于海量数据的随机、实时地大数据读写操作。
- HBase项目的目标是实现对建立在商用硬件上的集群所拥有的数十亿行或者数百万列的超大表中数据进行操作。
- HBase是开源的、分布式的、版本控制的、根据GFS等其他分布式存储系统设计改进而成的非关系型数据库。
- 就如同大数据表的存在使得GFS提供了分布式数据存储技术一样,ApacheHBase在Hadoop和HDFS上提供了类大数据表的处理能力。
基于上面的介绍,我们既可以进一步了解HBase的一些特性(功能)了:
- 线性与模块化可伸缩性(Linear and modular scalability)
- (数据)读写的完全一致性(Strictly consistent reads and writes)
- 分区表的自动化和可配置性(Automatic and configurable sharding of tables)
- 支持不同区域服务器之间的故障自动转移(Automatic failover support between RegionServers)
- 提供方便的基础类用于支持基于Apache Hbase表数据的Hadoop MapReduce操作(Convenient base classes for backing Hadoop MapReduce jobs with Apache HBase tables)
- 提供用于客户端获取的JavaAPI(Easy to use by Java API for client access)
- 为实时查询提供块缓存和布隆过滤器(Block cache and Bloom Filter for real-time queries)
- 支持查询谓词通过服务器端过滤器向下推送(Query predicate push down via server side Filters)
- 支持Thrift接口和一个提供了XML/Protobug/二进制数据编码可选的REST-ful Web服务(Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and binary data encoding options)
- 提供了基于jruby(JIRB)的可扩展的shell命令操作(Extensible jruby-based (JIRB) shell)
- 通过Hadoop的度量子系统文件、或者Ganglia监控体系、或者JMX,来为HBase输出提供度量指标(Support for exporting metrics via the Hadoop metrics subsystem to files or Ganglia; or via JMX)
有的小伙伴可能会说,我还是不太懂HBase到底是干嘛的,云里雾里的,这是因为作为一个Apache的*项目,他的使命是复杂的,需要完成很多的支持,我们只需要对他的核心功能有个大概的了解,然后开始使用即可,好记性不如烂笔头,好程序员喜欢敲代码,多实践,终有一日,守得云开见月明!