(1) 启动
启动顺序:Hadoop--zookeeper—hbase
主进程:HMaster 从进程:HRegionServer
确认进程是否正常
(2) 进入终端
[root@master ~]# hbase shell
(3) 查看状态
命令:status
表示有3台机器,0台down掉,当前负载1
(4) 创建表
表名:itme_table,列蔟1:meta_info,列蔟2:user_action
(5) 查看当前表
hbase(main):020:0> list
(6) 查看表的结构
命令:describe 或者 desc
两个列族,一个是meta_info,一个是user_action,versions=>1相当于是版本号,可以修改,修改之后旧的一样保存,IN_MEMORY有turn和false两个值,turn的话就是表的Column Family所有信息是保存到内存中的,false就是保存到hdfs上。
(7) 删除列蔟
alter 'item_table', { NAME =>'user_action', METHOD => 'delete' }
再查看表结构,只剩一个列蔟
(8) 添加列蔟,加版本号
alter 'item_table', { NAME =>'user_action',VERSIONS=>2,IN_MEMORY=>true}
再查看表结构:desc ‘item_table’
(9) 查看表是否激活状态
命令:is_enabled
true是激活 false是未激活
(10)关闭激活状态
命令:disable
关闭了再激活表,因为表要激活才能操作。
(11)写数据
往表写数据:put 表名,rowkey,列,时间戳,名字(相当于key)
put 'item_table', '1001', 'meta_info:name','book'
put 'item_table', '1002', 'meta_info:name','computer'
(12)读数据
批量读:scan 'item_table'
逐条读:
get 'item_table'
get 'item_table','1002'
get 'item_table','1002',{COLUMN=>'meta_info:name',TIMESTAMP=>1537533153070}
COLUMN 是指定某一个列,后面加上子列对应的时间戳
(13)更改column qualifier
直接put新数据一样,再查看
Meta_data是前面就定义好的Column Family,是不能变的,但是可以给它加column qualifier,即列蔟里面可以分子列,这个name就是column qualifier,可以有多个column qualifier,名字可以自定义
(14)查看有多少条记录:count
hbase(main):015:0> count 'item_table'
下面就是regionID号,数据少,目前就只有一个region
Column Family是独立一个目录的
刚才已经给mata_info添加数据了,user_action还没有数据的,写数据的时候,是先写到内存的,达到128M之后再溢出到磁盘,可以使用flush命名强制split出磁盘
hdfs上显示内容是二进制的,直接查看是乱码。
(15)批量从本地写数据
写hbase脚本:vim put.hbase
执行hbase脚本:hbase shell put.hbase
(16) 删除某rowkey全部数据
deleteall 'item_table','1005'
(17) 删除某rowkey的某一列数据
deleteall 'item_table','1004','meta_info:name'
(18)清空表数据
命令:truncate
(19)删除表:两步
先从激活状态到未激活状态,用disbale
删表,用drop
(20)查看表是否存在
exists 'item_table'