HBase
是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。
Hbase优点:
采用面向列(列族)加键值对的存储模式
实现横向扩展
自动数据分片
严格的读写一致性和自动的故障转移
全文检索与过滤
支持命令行、Java、Python等语言操作
表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族
行:每个HBase表都由若干行组成,每个行由行键(row key)来标识。
列族:一个HBase表被分组成许多“列族”(Column Family)的集合,它是基本的访问控制单元
列限定符:列族里的数据通过列限定符(或列)来定位
单元格:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]
时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引
客户端
是整个HBase系统的入口,使用者通过客户端操作HBase。
使用HBase的RPC机制与Hmaster和RegionServer进行通信。
Zookeeper
提供分布式协调服务、监控集群、维护数据总入口,记录Master节点地址
Master
所有RegionServer管理者、对RegionServer负责的数据范围进行分配、不负责管理用户数据表
Region
根据行健对表中行的分区
默认大小:100M—200M
子节点伸缩管理:
添加HBase节点
(1)在新节点部署配置HBase软件,并配置RegionServer
(2)在HMaster的regionserver配置文件中添加新节点的host
(3)在新节点中通过下面命令启动HRegionServer: hbase-daemon.sh start regionserver
(4)在新启动的节点上,打开hbase shell,如下设置: balance_switch true
删除HBase节点
在需要删除的节点执行命令
hbase-daemon.sh stop regionserver 或 graceful_stop.sh HOSTNAME