1 HBase集群角色
| 类别 | 服务 | 位置 |
| HDFS | NameNode——主节点 | Master机器 |
| Yarn | ResourceManager——全局的资源管理器 | Master机器 |
| HBase | HMaster | Master机器 |
| HDFS | DataNode——数据存储节点 | Node机器 |
| Yarn | NodeManager——分节点资源和任务管理器 | Node机器 |
| HBase | HRegionServer | Node机器 |
2 hbase架构
HRegionServer结构:
- HLog:存储HBase的修改记录
- HRegion:根据rowkey(行键,类似id)分割的表的分片
- Store:对应HBase表中的一个列族,可存储多个字段
- HFile:真正的存储文件
- MemStore:保存当前的操作
- ZooKeeper:存放数据的元数据信息,负责维护RegionServer中保存的元数据信息
- DFS Client:存储数据信息到HDFS集群中
3 安装配置
cd hbase/conf
3.1 vi hbase-env.sh
export JAVA_HOME=xxxxx/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
export HBASE_CLASSPATH=xxxxx/hadoop/etc/hadoop
export HBASE_MANAGES_ZK=false
3.2 vi hbase-site.xml
# hbasemaster的主机和端口
<property>
<name>hbase.master</name>
<value>master:60000</value>
</property>
# 时间同步允许的时间差
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
# hbase共享目录,持久化hbase数据
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:8020/hbase</value>
</property>
# 是否分布式运行,false即为单机
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
# zookeeper地址
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,node1,node2</value>
</property>
# zookeeper配置信息快照的位置
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>xxxxxhbase/tmp/zookeeper</value>
</property>
3.3 vi regionservers
加入从节点主机名
master
node1
node2
3.4 把hadoop/etc/hadoop目录下
core-site.xml,hdfs-site.xml 拷贝到hbase/conf目录下
4 master机器已经配置好了,拷贝配置好的HBase到其他机器上。
scp -r hbase node1:xxxx/env
scp -r hbase node2:xxxx/env
5 配置环境变量
vi ~/.bashrc
export HBASE_HOME=xxxx/hbase
export PATH=$PATH:$HBASE_HOME/bin
6 启动集群
在master机器执行就可以,不需要在node机器上执行,cd hbase/bin目录,
./start-hbase.sh 启动
./stop-hbase.sh 停止
7 查看集群状态UI界面
http://master:16010/master-status
8 操作命令
cd hbase/bin
8.1 启动命令终端
hbase-shell
8.2 显示表
list
8.3 显示服务器状态
status '主机名'
8.4 创建表
create '表名', '列族1', '列族2'
8.5 查询表
scan '表名'
8.6 查看表结构
describe '表名'
8.7 表中添加数据信息
put '表名', 'rowkey', '列族:列名', '值'
8.8 删除表
指定表不可用:disable '表名'
删除:drop '表名'
8.9 退出终端
exit或者quit