HBase基本介绍
HBase 是一个面向列式存储的分布式数据库,HBase 底层存储基于 HDFS 实现,集群的管理基于 ZooKeeper 实现。
HBase的架构
HBase组件角色:
- HMaster
功能:
1.监控 RegionServer
2.处理 RegionServer 故障转移
3.处理元数据的变更
4.处理region 的分配或移除
5.在空闲时间进行数据的负载均衡
6.通过 Zookeeper 发布自己的位置给客户端
- HRegionServer
功能:
1.负责存储 HBase 的实际数据
2.处理分配给它的 Region
3.刷新缓存到 HDFS
4.维护WAL
5.执行压缩
6.负责处理 Region 分片
-
HFile
这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。
-
Store
HFile 存储在 Store 中,一个 Store 对应 HBase 表中的一个Column Family列族(列簇)。
-
MemStore
顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在 WAL中之后,RegsionServer 会在内存中存储键值对。
HBase部署与启动
(1)下载、解压缩,在/etc/profile全局配置文件中添加
export HBASE_HOME=/export/servers/hbase-2.4.5
export PATH=$PATH:$HBASE_HOME/bin
(2)配置hbase-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_161
export HBASE_MANAGES_ZK=false # 使用外部的ZooKeeper
(3)配置hbase-site.xml
<configuration>
<!-- hbase数据存放的目录,若用本地目录,必须带上file://,否则hbase启动不起来 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://my2308-host:9000/hbase</value>
</property>
<!-- zk的位置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
<description>my2308-host:2181</description>
</property>
<!--hbase.cluster.distributed表示是否分布式部署,指定为true-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- hbase主节点的位置 -->
<property>
<name>hbase.master</name>
<value>my2308-host:60000</value>
</property>
</configuration>
(3)拷贝zookeeper的conf/zoo.cfg到hbase的conf/下
(4)启动HBase
执行start-hbase.sh脚本
注意:为了方便启动,可在/etc/profile中添加环境变量
export HBASE_HOME=/export/servers/hbase-2.4.5
export PATH=$PATH:$HBASE_HOME/bin