1 HBase集群角色
类别服务位置HDFSNameNode——主节点Master机器YarnResourceManager——全局的资源管理器Master机器HBaseHMasterMaster机器HDFSDataNode——数据存储节点Node机器YarnNodeManager——分节点资源和任务管理器Node机器HBaseHRegionServerNode机器
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