HBase的shell命令行操作

一、       启动shell外壳

hbase shell

hbase 帮助命令 hbase命令行_hbase 帮助命令

                有jar包冲突。hadoop的jar和hbase的jar冲突,删除其中一个(删除hbase的):

rm -rf /usr/hbase/hbase-1.2.1/lib/slf4j-log4j12-1.7.5.jar

hbase 帮助命令 hbase命令行_删除表_02

                再次启动shell:

hbase 帮助命令 hbase命令行_名称空间_03

 二、       Help查看命令

hbase 帮助命令 hbase命令行_删除表_04

三、       执行status

hbase 帮助命令 hbase命令行_名称空间_05

四、       执行version

hbase 帮助命令 hbase命令行_hbase 帮助命令_06

五、       执行whoami

hbase 帮助命令 hbase命令行_删除表_07

六、       执行list

                执行list命令,查看hbase中所有的表。

hbase 帮助命令 hbase命令行_删除表_08

                只有一张默认的表table

七、       创建表

                创建一张test表,只包含一个data列

create  'test' , 'data'

hbase 帮助命令 hbase命令行_数据_09

                Web页面:

hbase 帮助命令 hbase命令行_hbase 帮助命令_10

hbase 帮助命令 hbase命令行_名称空间_11

八、       解决hbase shell命令下不能使用Backspace键

hbase 帮助命令 hbase命令行_删除表_12

hbase 帮助命令 hbase命令行_数据_13

九、       加入数据

            在data列族中三个不同的行和列上插入数据

put  'test' , 'row1' ,'data:1' , 'value1'

hbase 帮助命令 hbase命令行_hbase 帮助命令_14

hbase 帮助命令 hbase命令行_hbase 帮助命令_15

十、       读取数据

              Hbase有两种数据读取方式:get和scan。

            1.     get方式

                读取一行的数据信息

get命令:get  'test' , 'row1'

hbase 帮助命令 hbase命令行_hbase 帮助命令_16

2.     scan方式

                读取表中所有行的数据信息。 

scan命令:scan 'test'

hbase 帮助命令 hbase命令行_hbase 帮助命令_17

十一、          删除表

            1、       先将需要删除的表设为禁用disable

命令:disable  'test'

hbase 帮助命令 hbase命令行_删除表_18

            2、       将表删除drop

命令:drop  'test'

hbase 帮助命令 hbase命令行_删除表_19

            3、       查看是否删除成功

hbase 帮助命令 hbase命令行_hbase 帮助命令_20

                test表已经删除。

十二、          创建表(指定族名)

            表模型:

hbase 帮助命令 hbase命令行_数据_21

            建表语句:

create 'user_info',{NAME => 'base_info' , VERSIONS =>3},{NAME => 'extra_info' , VERSIONS => 1}

hbase 帮助命令 hbase命令行_hbase 帮助命令_22

hbase 帮助命令 hbase命令行_删除表_23

hbase 帮助命令 hbase命令行_名称空间_24

十三、          添加数据

                插入第一行数据,自定义行号rowkey为rk0001

put 'user_info','rk00001','base_info:id','1'
put 'user_info','rk00001','base_info:name','haha'
put 'user_info','rk00001','base_info:age','18'
put 'user_info','rk00001','base_info:sex','male'
put 'user_info','rk00001','extra_info:addr','beijing'
put 'user_info','rk00001','extra_info:salary','18.0'

hbase 帮助命令 hbase命令行_hbase 帮助命令_25

           插入其他行:

hbase 帮助命令 hbase命令行_名称空间_26

十四、          查询数据

            1.   scan查询

scan 'user_info'

hbase 帮助命令 hbase命令行_hbase 帮助命令_27

            2.   get查询

get 'user_info', 'rk00001'

hbase 帮助命令 hbase命令行_数据_28

get'user_info','rk00001','base_info:name'

hbase 帮助命令 hbase命令行_hbase 帮助命令_29

                测试版本号:

hbase 帮助命令 hbase命令行_名称空间_30

                将rk00001的base_info下name改两次,总共三个版本,再次查询:

hbase 帮助命令 hbase命令行_数据_31

                显示最新版本。

                再次更改,版本变为4

hbase 帮助命令 hbase命令行_删除表_32

                查询所有版本:

get 'user_info' , 'rk00003',{COLUMN =>'base_info:name', VERSIONS => 10}

hbase 帮助命令 hbase命令行_数据_33

                只显示了最新的三个版本信息。

十五、          删除表

先弃用disable ‘user_info’
再删除 drop ‘user_info’。

hbase 帮助命令 hbase命令行_数据_34

十六、          创建名称空间namespace

                Hbase名称空间namespace相当于关系型数据库的库,namespace下存放有表table

                默认create创建的表都在default

hbase 帮助命令 hbase命令行_hbase 帮助命令_35

                创建名称空间:

create_namespace 'user'

hbase 帮助命令 hbase命令行_名称空间_36

                在指定名称空间下建表(表配置默认):

create 'user:user_info' ,'base_info'

hbase 帮助命令 hbase命令行_名称空间_37

                添加数据:

hbase 帮助命令 hbase命令行_名称空间_38

                查询:

hbase 帮助命令 hbase命令行_名称空间_39

                删除表:

hbase 帮助命令 hbase命令行_名称空间_40

                删除表空间:

                      需要先删除namespace下所有的表,才能删除namespace

hbase 帮助命令 hbase命令行_删除表_41

十七、          练习表操作

                创建:

create 'user',{NAME => 'info',VERSIONS => 3},{NAME=> 'data',VERSIONS => 1}

hbase 帮助命令 hbase命令行_hbase 帮助命令_42

                插入数据:

put 'user', 'rk0001', 'info:name', 'zhangsan'
put 'user', 'rk0001', 'info:gender', 'female'
put 'user', 'rk0001', 'info:age', 20
put 'user', 'rk0001', 'data:pic', 'picture'
put 'user', 'rk0002', 'info:name', 'fanbingbing'
put 'user', 'rk0002', 'info:gender', 'female'
put 'user', 'rk0002', 'info:nationality', '中国'

            查询:

                1.   查询rk0001行的所有数据

get 'user','rk0001'

hbase 帮助命令 hbase命令行_hbase 帮助命令_43

                2.   查询rk0001行info列族下的数据

get 'user','rk0001','info'

hbase 帮助命令 hbase命令行_hbase 帮助命令_44

                3.   查询rk0001行info列族中name和age两cell数据

get 'user','rk0001','info:name','info:age'

hbase 帮助命令 hbase命令行_名称空间_45

                4.   查询rk0001行下info、data两个列族的信息

get 'user','rk0001','info','data'

hbase 帮助命令 hbase命令行_名称空间_46

                5.   查询rk0001行下info、data两个列族的信息

get 'user','rk0001',{COLUMN => ['info','data']}

hbase 帮助命令 hbase命令行_数据_47

                6.   查询rk0001行下info列族name和data列族pic的信息

get 'user', 'rk0001', {COLUMN =>['info:name', 'data:pic']}

hbase 帮助命令 hbase命令行_数据_48

            7.   查询user表中row key为rk0001,列标示符中含有a的信息

hbase 帮助命令 hbase命令行_数据_49

            8.   查询user表中row key为rk0002,value值中含有’中国’的信息

get 'user', 'rk0002', {FILTER =>"ValueFilter(=, 'binary:中国')"}

hbase 帮助命令 hbase命令行_hbase 帮助命令_50

            9.   scan类似.

                删除数据:

delete 'user', 'rk0001', 'info:name'

                清空表:

truncate'user'

hbase 帮助命令 hbase命令行_删除表_51