HBase Shell操作和HBase API操作(创建表,插入数据,查看数据,删除表等操作)(二)

一.HBase Shell操作

命名空间

--创建命名空间exam
create_namespace 'exam'
--显示命名空间
list_namespace
--显示exam命名空间的表
list_namespace_tables 'exam'
--删除命名空间exam
drop_namespace 'exam'

1.进入HBase客户端命令行

[hadoop@hadoop00 hbase]$ $HBASE_HOME/bin/hbase shell

2.查看帮助命令

hbase(main):001:0> help

3.查看当前数据库中有哪些表

hbase(main):002:0> list

4.创建表

create '[命名空间]:表名','列簇名1','列簇名2'
hbase(main):003:0>create 'customer',{NAME=>'addr'},{NAME=>'ordeer'}

NAME=>‘xxx’,xxx为列族的名字。HBase中创建一个表,必须指定至少一个列族。

列族对应HDFS上一个文件夹

5.插入数据到表

put '[命名空间]:表名','rowkey','列簇名1:列名','数据'
hbase(main):004:0>put 'customer','jsmith','addr:city','monthreal'
hbase(main):005:0>put 'customer','jsmith','addr:state','ON'
hbase(main):006:0>put 'customer','jsmith','order:numb','123456'
hbase(main):007:0>put 'customer','jsmith','order:date','2015-12-19'

插入数据后,到对应的列族目录下,发现没有对应的文件生成

就证明HBase 写入数据是没有直接落磁盘的,是先在缓冲中的。为了方便演示,可以手动刷出缓存,命令为 flush,在命令行输入 flush,会提示使用方法。

hbase(main):008:0> flush 'customer'

flush 完成后,可以看到对应的列族目录下,有数据文件了,该文件就是 HFile。

​ 列族目录下的文件,可以尝试使用 hdfs 命令查看其内容,会发现是二进制的内容。HBase 提供了查看该文件内容的方式。

下面命令在 Linux 命令行执行,不是在 hbase shell 中

[root@hadoop00 ~]$ hbase hfile -v -p -f /hbase/data/default/customer/e3ee2da14c8b5f82f2035fc9fc283481/addr/8e1050e1df9842f0b15dc8fb2a7b50e4
#输出
K: r001/addr:city/1608264247929/Put/vlen=7/seqid=5 V: beijing
K: r001/addr:country/1608264351168/Put/vlen=5/seqid=6 V: china
K: r002/addr:city/1608264394006/Put/vlen=7/seqid=7 V: nanjing
K: roo3/addr:city/1608264967129/Put/vlen=7/seqid=9 V: nanjing

前面是 K,后面是 V,从这里也能看出 HBase 是 KeyValue 数据库

6.插入多行数据

put 'customer', 'jsmith', 'order:numb', '1235'
put 'customer', 'jsmith', 'order:numb', '1236'
put 'customer', 'jsmith', 'order:numb', '1237'
put 'customer', 'jsmith', 'order:numb', '1238'
put 'customer', 'njones', 'addr:city', 'miami'
put 'customer', 'njones', 'addr:state', 'FL'
put 'customer', 'njones', 'order:numb', '5555'
put 'customer', 'tsimmons', 'addr:city', 'dallas'
put 'customer', 'tsimmons', 'addr:state', 'TX'
put 'customer', 'jsmith', 'addr:city', 'denver'
put 'customer', 'jsmith', 'addr:state', 'CO'
put 'customer', 'jsmith', 'order:numb', '6666'
put 
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值