您的位置:首页 > 运维架构 > Shell

Hbase课程02- Hbase shell命令总结

2016-03-29 21:56 225 查看
1、前言

对hbase的操作使用最多的两种查询方式一个是shell命令,在项目开发中临时查

询经常使用,还一个是Hbase Java API的使用,代码开发过程中常用。重用shell命令

[align=left]名称[/align]
[align=left]命令表达式[/align]
[align=left]创建表[/align]
[align=left]create '表名称', '列名称1','列名称2','列名称N'[/align]
[align=left]添加记录 [/align]
[align=left]put '表名称', '行名称', '列名称:', '值'[/align]
[align=left]查看记录[/align]
[align=left]get '表名称', '行名称'[/align]
[align=left]查看表中的记录总数[/align]
[align=left]count '表名称'[/align]
[align=left]删除记录[/align]
[align=left]delete '表名' ,'行名称' , '列名称'[/align]
[align=left]删除一张表[/align]
[align=left]先让表下线,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称'[/align]
[align=left]查看所有记录[/align]
[align=left]scan "表名称" [/align]
[align=left]查看某个表某个列中所有数据[/align]
[align=left]scan "表名称" , ['列名称:'][/align]
[align=left]更新记录[/align]
[align=left]就是重写一遍进行覆盖[/align]
2、命令详解

Hbase集群正常配置后,进入到hbase安装目录,执行bin/hbase shell命令

* status

服务器状态查询,显示有几个节点,宕机了几台节点,集群平均负载情况等信息

* version

查询hbase版本

* 新建表

create 'member' ,{NAME => 'f1',VERSIONS => 1,COMPRESSION => 'LZO', TTL => '6000'}

NAME :列族名称
version:数据保存的版本个数
COMPRESSION :使用的压缩方法,要提前配置好,通常有LZO,SNAPPY等
TTL:数据保存周期,单位秒

* 查询表
describe 'member'



NAME:列名

DATA_BLOCK_ENCODING:是HBase 0.94版本引入的特性,可以将重复的row/family/qualifier/进行压缩,减少block的空间占用,提高内存使用率,可以通过http://zjushch.iteye.com/blog/1585066了解更多

BLOOMFILTER:提高随机读的性能

REPLICATION_SCOPE:hbase-0.90.0的一个重要改进是引入了replication机制,使它的数据完整性得到了进一步的保障

VERSIONS:数据保存版本,默认是3 这个参数的意思是数据保留三个 版本,如果我们认为我们的数据没有这么大的必要保留这么多,随时都在更新,而老版本的数据对我们毫无价值,那将此参数设为1 能节约2/3的空间

COMPRESSION:存储压缩方法,采用压缩可以大大节约空间

MIN_VERSIONS:最小版本数

TTL:数据保存周期,单位秒

KEEP_DELETED_CELLS:涉及到hbase的删除机制,

BLOCK_SIZE:block大小,了解region的组成原理

IN_MEMORY:是否进入缓存

BLOCK_CACHE:HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分作为BlockCache,主要用于读

* 插入一条记录:

put '表名','row key','列族名:列名','值'

put'member','18070148938','f1:c1','24'

* 更新记录(记录只保存一个版本),

插入相同的rowkey可直接覆盖,实现更新功能

put 'member','18070148938','f1:c1','25'

* 查询记录

scan '表名',{STARTROW=>‘起始rowkey’,STOPROW=>'结束rowkey'}

scan查询:scan 'member',{STARTROW=>'18070148938',STOPROW=>'18070148940'}

get查询:get 'member','18070148938'

* 删除记录

delete 'member','18070148947','f1:c1'

*删除列族
disable 'member'
alter 'member',{NAME=>'f1',METHOD=>'delete'}
*删除表
disable 'member'
drop 'member'
* 列出所有表 :list

* 查询表是否存在:exsists '表名'

* 判断表是否enable:is_enabled '表名'

*清空表
truncate 'member'

*批量导数据
mapred.job.queue.name:指明提交队列
生成HFile:
bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -D mapred.job.queue.name=hadoop -Dimporttsv.bulk.output=/tmp/hac/wide_t85908 -Dimporttsv.columns=HBASE_ROW_KEY,f:c01,f:c02,f:c03,f:c04,f:c05,f:c06,f:c07,f:c08,f:c09
wide_t85908 /tmp/wide_t85908

bulkload导数据:
bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/hac/wide_t85908 wide_t85908

本文为Anmy老师原创,感兴趣的欢迎转载

格言:码代码的同时,努力成为一个知识的传播者。

QQ: 1726076126,加时请注明:CSDN
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: