进入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+删除键