一、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
二、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基本操作演示
前提条件:
-
启动Hadoop集群:sbin/start-all.sh
-
启动ZooKeeper服务:zkServer.sh start
-
启动HBase服务:start-hbase.sh
数据库操作演示:
-
进入 hbase 客户端
hbase shell
-
查看所有库(命名空间)
list_namespace
-
创建一个名称为'mydb'的库
create_namespace 'mydb'
-
删除'mydb'库
drop_namespace 'mydb'
表操作演示
-
查看 'mydb'库下的表
list_namespace_tables 'mydb'
-
查看所有自己创建的表
list
-
在'mydb'库下创建名为test的表,并创建'f1'、'f2'两个列族
create 'mydb:test','f1','f2'
注意:创建表时若不指定库名,则默认在default库下创建表,创建表需要至少指定一个列族
-
查看表详细信息
describe 'mydb:test'
或
desc 'mydb:test'
-
增加列族
alter 'mydb:test','f3'
-
删除列族
alter 'mydb:test','delete'=>'f2'
-
删除表
disable 'mydb:test'
drop 'mydb:test'
注意:删除表需要先进行disable,再进行drop