进入HBase客户端:
# hbase shell
基本操作:
-- 帮助
> help
> help 'list'
-- 查看当前数据库中有哪些表
> list
-- 查看当前数据库中有哪些命名空间
>list_namespace
-- 创建表
> create 'student','cf1'
> create 'student','cf1','kk'
> create 'student',{NAME=>'cf1'},{NAME=>'kk'}
-- 查询表结构
> desc 'student'
-- 插入、更新数据
-- shell中一次只能插一个,可以代码批量插入
-- 可以多次插入同一条数据,比如再执行 > put 'student','1001','cf1:name','TOM',如果版本设置的是1,就显示时间戳最大的一条。版本设置的是3,就显示3条。
> put 'student','1001','cf1:name','TOM'
> put 'student','1001','cf1:sex','male'
-- 空值,稀疏结构,写比较快,但读的时候有可能会慢。因为可能读的时候找不到去磁盘里找了。
> put 'student','1001','cf1:isNull',''
-- 查看数据
> scan 'student'
> scan 'student',{STARTROW => '1001'}
-- 这里查到的只有1001的,因为是左闭右开的
> scan 'student',{STARTROW => '1001', STOPROW => '1002'}
-- get查询
> get 'student','1001'
-- 只能看到最新的(时间戳最大)的一条一条
> get 'student','1001','cf1:name'
-- 最新的10个版本的数据。但如果定义表的时候版本设置的是3,那么也不会显示10条,只会显示3条。
> get 'student','1002',{COLUMN=>'cf1:name',VERSIONS=>10}
-- 删除
> delete 'student','1001'
> delete 'student','1001','cf1:name'
> deleteall 'student','1001'
-- 清空表里面数据。底层先停止表,然后清空(1.删除表2.创建一张相同的表)
> truncate 'student'
-- 删除表前需要先将表disable掉。disabled状态的表不可操作和查询。
> disable 'student'
> enable 'student'
> is_disabled 'student'
> is_enabled 'student'
> drop 'student'
-- 统计行数(rowkey的数)
> count 'student'
-- 修改列蔟的版本
> alter 'student',{NAME=>'cf1',VERSIONS=>3}
-- 添加列蔟
> alter 'student', NAME => 'cf2'
> alter 'student', NAME => 'cf2', VERSIONS => 2
-- 删除列蔟
> alter 'student','delete'=>'cf1'
-- 显示服务器状态
> status
> status 'bigdata111'
-- 检查表是否存在,适用于表量特别多的情况
> exists 'student'
-- 退出
> quit
-- 在hbase shell里面,删除需要ctrl+删除键