博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hbase(3)---shell操作
阅读量:4086 次
发布时间:2019-05-25

本文共 3902 字,大约阅读时间需要 13 分钟。

1、进入hbase命令行

在集群中任意一台服务器节点上,执行hbase shell,就会进入到你的hbase shell 客户端

1.1、help获得帮助

1)、help:获得所有命令

2)、help "dml":获得一组命令的提示

3)、help "put":获取一个单独命令的提示

1.2、exit退出

 

2、hbase表的操作

2.1、创建表create

输入如下命令进行查看帮助命令:help 'create'

hbase(main):001:0> help 'create'Creates a table. Pass a table name, and a set of column familyspecifications (at least one), and, optionally, table configuration.Column specification can be a simple string (name), or a dictionary(dictionaries are described below in main help output), necessarily including NAME attribute. Examples:Create a table with namespace=ns1 and table qualifier=t1  hbase> create 'ns1:t1', {NAME => 'f1', VERSIONS => 5}Create a table with namespace=default and table qualifier=t1  hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}  hbase> # The above in shorthand would be the following:  hbase> create 't1', 'f1', 'f2', 'f3'  hbase> create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}  hbase> create 't1', {NAME => 'f1', CONFIGURATION => {'hbase.hstore.blockingStoreFiles' => '10'}}  Table configuration options can be put at the end.Examples:  hbase> create 'ns1:t1', 'f1', SPLITS => ['10', '20', '30', '40']  hbase> create 't1', 'f1', SPLITS => ['10', '20', '30', '40']  hbase> create 't1', 'f1', SPLITS_FILE => 'splits.txt', OWNER => 'johndoe'  hbase> create 't1', {NAME => 'f1', VERSIONS => 5}, METADATA => { 'mykey' => 'myvalue' }  hbase> # Optionally pre-split the table into NUMREGIONS, using  hbase> # SPLITALGO ("HexStringSplit", "UniformSplit" or classname)  hbase> create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}  hbase> create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit', REGION_REPLICATION => 2, CONFIGURATION => {'hbase.hregion.scan.loadColumnFamiliesOnDemand' => 'true'}}  hbase> create 't1', {NAME => 'f1', DFS_REPLICATION => 1}You can also keep around a reference to the created table:  hbase> t1 = create 't1', 'f1'Which gives you a reference to the table named 't1', on which you can thencall methods.hbase(main):002:0>

其中看到其中一条提示:

hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}

其中t1是表名称,f1,f2,f3是列簇的名称。

示例如下:

创建一个名为myHbase的表,表里面有1个列簇名为myName

 

2.2、查看表列表list

list查看,只有1条结果,就是上例中创建的myHbase表

2.3、查看表的详细信息desc

2.4、修改表的定义alter

2.4.1、添加一个列簇

添加成功后,通过desc 'myHbase'查看新增的列簇

2.4.2、删除一个列簇

删除后,再次查看,结果如下:

也可以使用如下方式删除

注意:hbase表中必须有一个列簇,如果有且只有1个列簇就不能删除

2.4.3、添加列簇myStudent同时删除列簇myInfo

2.4.4、清空表truncate

2.4.5、删除表drop

注:直接删除表会报错,根据提示需要先停用表

先停用、再删除,然后list查看表是否存在

3、hbase表中数据的操作

关于数据的操作(增put、删delete、查get+scan,改)

3.1、创建user表,表包含username,address这两个列簇

列簇username保留3个版本,列簇address保留1个版本

3.2、向表user中新增数据

1)、help 'put'查看帮助如下

2)、创建表user,列簇为base_info,保留3个版本,如下:

3)、向user表中插入数据,row key为rowkey_10,列簇base_info中添加username列标示符,值为张三

put 'user', 'rowkey_10', 'base_info:username', '张三'put 'user', 'rowkey_10', 'base_info:birthday', '2014-07-10'put 'user','rowkey_10','base_info:sex','1'put 'user','rowkey_10','base_info:address','北京市'put 'user','rowkey_16','base_info:username','张小明'put 'user','rowkey_16','base_info:birthday','2014-07-10'put 'user','rowkey_16','base_info:sex','1'put 'user','rowkey_16','base_info:address','北京'put 'user','rowkey_22','base_info:username','陈小明'put 'user','rowkey_22','base_info:birthday','2014-07-10'put 'user','rowkey_22','base_info:sex','1'put 'user','rowkey_22','base_info:address','上海'put 'user','rowkey_24','base_info:username','张三丰'put 'user','rowkey_24','base_info:birthday','2014-07-10'put 'user','rowkey_24','base_info:sex','1'put 'user','rowkey_24','base_info:address','河南'put 'user','rowkey_25','base_info:username','陈大明'put 'user','rowkey_25','base_info:birthday','2014-07-10'put 'user','rowkey_25','base_info:sex','1'put 'user','rowkey_25','base_info:address','西安

3.3、查询user表中的数据 scan 'user',显示内容如下:

查询user表中rowKey为rowkey_24的所有信息

查询user表中rowKey为rowkey_25,base_info列簇的所有信息

3.4、删除user表rowKey为rowkey_1,列标示符为base_info:birthday的数据

删除后,再次查看

转载地址:http://oluii.baihongyu.com/

你可能感兴趣的文章
Express: Can’t set headers after they are sent.
查看>>
2017年,这一次我们不聊技术
查看>>
实现接口创建线程
查看>>
Java对象序列化与反序列化(1)
查看>>
HTML5的表单验证实例
查看>>
JavaScript入门笔记:全选功能的实现
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
数据库事务
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>
SQL基础总结——20150730
查看>>
SQL join
查看>>
JavaScript实现页面无刷新让时间走动
查看>>
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
pinyin4j:拼音与汉字的转换实例
查看>>
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>