HBase Shell常用命令
2014-03-20 13:57
190 查看
概述:HBase是一个分布式的、高可靠性、高性能的存储系统,面向列的开源数据库。HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。 它是Apache的Hadoop项目的子项目,适合于非结构化数据存储的数据库。利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
命令:disable 'tableName' --disable表。注:修改表结构时,必须要先disable表。
命令:enable 'tableName' --使表可用
命令:drop 'tableName' --删除表
HBase基本命令
下面我们再看看看HBase的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:
HBase表DDL和DML操作:
1、创建表操作:
创建表: create 'student','name','address'
说明:新建student表,该表有两列 名称和地址,名称只有一个,address可以有多个,
2、插入操作:
插入一条记录,只能插入某列:put 'student','row1','name','tom'
说明:向student有中插入记录,记录的row值为row1,列name的值为tom
插入列簇
地址簇插入家庭地址:put 'student','row1','address:home','ShiDai Street'
地址簇插入学校地址:put 'student','row1','address:school','BinAn Street'
查询学生的家庭地址:get 'student','row1',{COLUMN=>'address:home'}
3. 更新操作:
根据row值 查询一条记录:get 'student','row1'
根据row值更新name值 (系统会直接更新): put 'student','row1','name','tom2'
再查询时,系统返回最新的值: get 'student','row1'
根据timestamp查询更新之前的 name值:lsi
get 'student','row1',{COLUMN=>'name',TIMESTAMP=>1301473112875}
5、删除操作d
删除Id为temp的值的“info:age ”:delete 'student','temp','info:age' ls
删除整行: deleteall 'student','tom'
将整张表清空: truncate ''student'
设置表不可用: disable 'student'
删除表: drop 'student'
6、查询操作
查询数据库中所有的表:list
查询student表中所有数据:Scan 'student'
查看student表中address列族的所有数据:scan 'student',{COLUMNS =>'address'}
Get一行:get ''student' , 'row1'
查询表是否存在:exists 'student'
查询表结构:describe 'student'
查询服务器状态:status
如:3 servers, 0 dead,1.0000 average load
查询hbase版本:version
如:0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
7、其他操作:
判断表是否enable 或disable:is_enabled 'student'或 is_disabled 'student'
关闭shell: exit
学生表示例:
1. 创建表
create 'student','name','address'
新建student表,该表有两列 名称和地址,名称只有一个,address可以有多个,
2.插入一条记录,只能插入某列
put 'student','1','name','tom'
向student有中插入记录,记录的row值为1,列name的值为tom
3. 根据row值 查询一条记录
get 'student','1'
查询结果:
COLUMN CELL
name: timestamp=1301473112875, value=tom
4. 根据row值更新name值 (系统会直接更新)
put 'student','1','name','tom2'
5.再查询时,系统返回最新的值
hbase(main):052:0> get 'student','1'
COLUMN CELL
name: timestamp=1301473425265, value=tom2
6.根据timestamp查询更新之前的 name值,
get 'student','1',{COLUMN=>'name',TIMESTAMP=>1301473112875}
7. 给学生的地址簇插入家庭地址
put 'student','1','address:home','shenzhen street'
8. 给学生的地址簇插入学校地址
put 'student','1','address:school','huaqiangbei street'
9. 查询学生的家庭地址
get 'student','1',{COLUMN=>'address:home'}
命令:disable 'tableName' --disable表。注:修改表结构时,必须要先disable表。
命令:enable 'tableName' --使表可用
命令:drop 'tableName' --删除表
HBase基本命令
下面我们再看看看HBase的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:
名称 | 命令表达式 |
创建表 | create '表名称', '列名称1','列名称2','列名称N' |
添加记录 | put '表名称', '行名称', '列名称:', '值' |
查看记录 | get '表名称', '行名称' |
查看表中的记录总数 | count '表名称' |
删除记录 | delete '表名' ,'行名称' , '列名称' |
删除一张表 | 先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称' |
查看所有记录 | scan "表名称" |
查看某个表某个列中所有数据 | scan "表名称" , ['列名称:'] |
更新记录 | 就是重写一遍进行覆盖 |
1、创建表操作:
创建表: create 'student','name','address'
说明:新建student表,该表有两列 名称和地址,名称只有一个,address可以有多个,
2、插入操作:
插入一条记录,只能插入某列:put 'student','row1','name','tom'
说明:向student有中插入记录,记录的row值为row1,列name的值为tom
插入列簇
地址簇插入家庭地址:put 'student','row1','address:home','ShiDai Street'
地址簇插入学校地址:put 'student','row1','address:school','BinAn Street'
查询学生的家庭地址:get 'student','row1',{COLUMN=>'address:home'}
3. 更新操作:
根据row值 查询一条记录:get 'student','row1'
根据row值更新name值 (系统会直接更新): put 'student','row1','name','tom2'
再查询时,系统返回最新的值: get 'student','row1'
根据timestamp查询更新之前的 name值:lsi
get 'student','row1',{COLUMN=>'name',TIMESTAMP=>1301473112875}
5、删除操作d
删除Id为temp的值的“info:age ”:delete 'student','temp','info:age' ls
删除整行: deleteall 'student','tom'
将整张表清空: truncate ''student'
设置表不可用: disable 'student'
删除表: drop 'student'
6、查询操作
查询数据库中所有的表:list
查询student表中所有数据:Scan 'student'
查看student表中address列族的所有数据:scan 'student',{COLUMNS =>'address'}
Get一行:get ''student' , 'row1'
查询表是否存在:exists 'student'
查询表结构:describe 'student'
查询服务器状态:status
如:3 servers, 0 dead,1.0000 average load
查询hbase版本:version
如:0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
7、其他操作:
判断表是否enable 或disable:is_enabled 'student'或 is_disabled 'student'
关闭shell: exit
学生表示例:
1. 创建表
create 'student','name','address'
新建student表,该表有两列 名称和地址,名称只有一个,address可以有多个,
2.插入一条记录,只能插入某列
put 'student','1','name','tom'
向student有中插入记录,记录的row值为1,列name的值为tom
3. 根据row值 查询一条记录
get 'student','1'
查询结果:
COLUMN CELL
name: timestamp=1301473112875, value=tom
4. 根据row值更新name值 (系统会直接更新)
put 'student','1','name','tom2'
5.再查询时,系统返回最新的值
hbase(main):052:0> get 'student','1'
COLUMN CELL
name: timestamp=1301473425265, value=tom2
6.根据timestamp查询更新之前的 name值,
get 'student','1',{COLUMN=>'name',TIMESTAMP=>1301473112875}
7. 给学生的地址簇插入家庭地址
put 'student','1','address:home','shenzhen street'
8. 给学生的地址簇插入学校地址
put 'student','1','address:school','huaqiangbei street'
9. 查询学生的家庭地址
get 'student','1',{COLUMN=>'address:home'}
相关文章推荐
- shell ftp判断远程主机是否存在某目录
- Bash 使用技巧
- WinsockExpert+NC抓包上传之拿WEBSHELL
- MySQL问题解决:-bash:mysql:command not found
- MySQL问题解决:-bash:mysql:command not found
- SHELL中字符串的截取
- shell
- 登录和退出时shell的执行顺序
- shell变量扩展技巧
- java中调用adb shell 命令启动android应用程序
- Linux Shell下使用vi编辑器命令
- uva 10152 ShellSort
- Shell环境配置
- PHP shell模式下执行PHP文件报错
- 使用sh -x调试shell脚本
- bash中变量的设定规则
- 使用ssh client与bash scripts轻松管理多台主机
- hdfs shell
- Linux/Unix shell 脚本监控磁盘可用空间
- Linux/Unix shell 自动发送AWR report