HBase是Hadoop的分布式数据库,用于大数据存储。是独立于Hadoop但依赖其HDFS的另一个开源项目。项目的目标是用于支持大数据表:十亿级的行数和百万级的列数。Hbase也是个分布式的、开源的、描述性的、非关系型数据库模型。Apache HBase数据库在Hadoop和HDFS顶层提供Bigtable-like的容量,也即是说,在Hadoop提供的HDFS文件系统上运行的HBase数据库,将发挥分布式数据库更好的性能,若用OS支持的原生文件系统(如ext3,ext4,NTFS等),也能运行,但不建议这样做。
HBase基本架构概述:
在HBase底层,通过HDFS和ZooKeeper协调数据存储和消息传导。而上层的功能即是Master和RegionServer提供,这四者各自成为一个进程。HDFS不用解释,Master作为数据库集群的核心节点,担负起协同调度的任务。而HBase可以指定备援Master(backup master),这样在主Master挂掉后可以由备援Master顶替上。
HBase可以在伪分布式下运行,也可以搭建真正的集群。
伪分布式运行模式下,HMaster、ZooKeeper、HRegionServer运行在不同的进程,但还是在同一个实体机上。
Master进程被命名为HMaster,可以通过运行JDK的jps工具查看。每个HMaster默认会使用三个端口(16010,16020,16030),在启动Backup HMaster时,指定一个offset,这样端口号就可以不会冲突了。offset将加在默认端口上,作为这个Backup的开放端口。命令如下:
bin/local-master-backup.sh start 2 3 5
这样有三个备援主机启动,端口号分别是(16012,16022,16032)、(16013,16023,16033)、(16015,16025,16035)。
同样,使用stop命令即可关闭。
同理,使用local-regionservers.sh 可以开启和关闭本地的多个RegionServer。使用方法和上面的HMaster类似,RegionServer同样占用两个默认端口(16200,16300)。