hbase shell学习-2
一个学生成绩表的例子来演示hbase的用法。
| name | grade | course | |
| math | english | ||
| Tom | 5 | 97 | 87 |
| Jim | 4 | 89 | 80 |
表的创建:语法:create '表名称','列簇名称1','列簇名称2'........
create 'student','name','grade','course'
desc 'student'
结果:
{
NAME=>'course',
DATA_BLOCK_ENCODING=>'NONE',
BLOOMFILTER=>'ROW',
REPLICATION_SCOPE=>'',
VERSIONS=>'',
COMPRESSION=>'NONE',
MIN_VERSIONS=>'',
TTL=>'FOREVER',
KEEP_DELETED_CELLS=>'FALSE',
BLOCKSIZE=>'',
IN_MEMORY=>'false',
BLOCKCACHE=>'true'
}{
NAME=>'grade',
DATA_BLOCK_ENCODING=>'NONE',
BLOOMFILTER=>'ROW',
REPLICATION_SCOPE=>'',
VERSIONS=>'',
COMPRESSION=>'NONE',
MIN_VERSIONS=>'',
TTL=>'FOREVER',
KEEP_DELETED_CELLS=>'FALSE',
BLOCKSIZE=>'',
IN_MEMORY=>'false',
BLOCKCACHE=>'true'
}{
NAME=>'name',
DATA_BLOCK_ENCODING=>'NONE',
BLOOMFILTER=>'ROW',
REPLICATION_SCOPE=>'',
VERSIONS=>'',
COMPRESSION=>'NONE',
MIN_VERSIONS=>'',
TTL=>'FOREVER',
KEEP_DELETED_CELLS=>'FALSE',
BLOCKSIZE=>'',
IN_MEMORY=>'false',
BLOCKCACHE=>'true'
}
新增列簇:
alter '表名称',NAME='列簇名称'
hbase(main):068:0> alter 'student',NAME=>'age'
Updating all regions with the new schema...
1/1 regions updated.
删除列簇:
alter '表名称',NAME=>'列簇名称',METHOD=>'delete'
alter 'student',NAME=>'test',METHOD=>'delete'
删除一个表:之前,必须先将该表disable掉。
disable 'student' drop 'student'
给表添加记录:
put '表名称','rowkey','列簇名称:列名称','值'
put 'student','','name','Tom'
结果:
hbase(main):085:0> scan 'student'
ROW COLUMN+CELL
001201509011001 column=name:, timestamp=1447766388162, value=Tom
1 row(s) in 0.0090 seconds
继续执行:name列簇的value='jim',但是rowkey 不变,
hbase(main):086:0> put 'student','','name','Jim'
结果还是一条数据,001201509011001的rowkey,被第二条数据覆盖。
scan 'student'
ROW COLUMN+CELL
001201509011001 column=name:, timestamp=1447766492893, value=Jim
put 'student','','course:math',''
put 'student','001201509011001','course:english','100'
hbase(main):096:0> scan 'student'
ROW COLUMN+CELL
001201509011001 column=course:english, timestamp=1447766828720, value=100
001201509011001 column=course:math, timestamp=1447766813289, value=100
001201509011001 column=grade:, timestamp=1447766751652, value=2
001201509011001 column=name:, timestamp=1447766492893, value=Jim
001201509011002 column=name:, timestamp=1447766547713, value=Tom
加了很多rowKey进行测试:如下
base(main):127:0> scan 'student'
ROW COLUMN+CELL
001201509011001 column=course:english, timestamp=1447766828720, value=100
001201509011001 column=course:math, timestamp=1447766813289, value=100
001201509011001 column=grade:, timestamp=1447766751652, value=2
001201509011001 column=name:, timestamp=1447766492893, value=Jim
001201509011002 column=course:english, timestamp=1447766987607, value=95
001201509011002 column=course:math, timestamp=1447767003501, value=80
001201509011002 column=grade:, timestamp=1447767073299, value=6
001201509011002 column=name:, timestamp=1447766547713, value=Tom
001201509011003 column=grade:, timestamp=1447767130750, value=5
001201509011004 column=grade:, timestamp=1447767139371, value=3
001201509011005 column=grade:, timestamp=1447767146338, value=3
001201509011006 column=course:math, timestamp=1447767489278, value=30
001201509011006 column=grade:, timestamp=1447767153088, value=2
001201509011007 column=course:math, timestamp=1447767474245, value=87
001201509011007 column=grade:, timestamp=1447767173296, value=2
001201509011008 column=grade:, timestamp=1447767181639, value=3
001201509011008 column=name:, timestamp=1447767278902, value=lucy
001201509011009 column=grade:, timestamp=1447767190450, value=10
001201509011009 column=name:, timestamp=1447767257259, value=Mike
001201509011010 column=grade:, timestamp=1447767198644, value=11
001201509011010 column=name:, timestamp=1447767236548, value=Peter
根据rowkey查看对应列的数据:
get '表名称','rowkey','列簇名称:列名称'
get 'student','','name'
COLUMN CELL
name: timestamp=1447766492893, value=Jim
查看表中的记录数:根据列簇来统计:
hbase(main):133:0* count 'student'
结果:10
查询表中指定列的所有记录:
语法:scan '表名',{COLUMNS =>'列簇'}
hbase(main):134:0> scan 'student',{COLUMNS=>'name'}
ROW COLUMN+CELL
001201509011001 column=name:, timestamp=1447766492893, value=Jim
001201509011002 column=name:, timestamp=1447766547713, value=Tom
001201509011008 column=name:, timestamp=1447767278902, value=lucy
001201509011009 column=name:, timestamp=1447767257259, value=Mike
001201509011010 column=name:, timestamp=1447767236548, value=Peter
hbase(main):135:0> scan 'student',{COLUMNS=>'grade'}
ROW COLUMN+CELL
001201509011001 column=grade:, timestamp=1447766751652, value=2
001201509011002 column=grade:, timestamp=1447767073299, value=6
001201509011003 column=grade:, timestamp=1447767130750, value=5
001201509011004 column=grade:, timestamp=1447767139371, value=3
001201509011005 column=grade:, timestamp=1447767146338, value=3
001201509011006 column=grade:, timestamp=1447767153088, value=2
001201509011007 column=grade:, timestamp=1447767173296, value=2
001201509011008 column=grade:, timestamp=1447767181639, value=3
001201509011009 column=grade:, timestamp=1447767190450, value=10
001201509011010 column=grade:, timestamp=1447767198644, value=11
10 row(s) in 0.0220 seconds
hbase(main):136:0> scan 'student',{COLUMNS=>'course'}
ROW COLUMN+CELL
001201509011001 column=course:english, timestamp=1447766828720, value=100
001201509011001 column=course:math, timestamp=1447766813289, value=100
001201509011002 column=course:english, timestamp=1447766987607, value=95
001201509011002 column=course:math, timestamp=1447767003501, value=80
001201509011006 column=course:math, timestamp=1447767489278, value=30
001201509011007 column=course:math, timestamp=1447767474245, value=87
4 row(s) in 0.0130 seconds
查询表中指定区间的所有记录数:
也可以指定一些修饰词:TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,or COLUMNS。没任何修饰词,就是上边例句,就会显示所有数据行。
语法:scan '表名',{COLUMNS =>'列簇',LIMIT =>记录数,STARTROW=>'开始rowkey',STOPROW=>'结束rowkey'}
取出name列族,前3条记录
hbase(main):012:0> scan 'student',{COLUMNS=>['name'],LIMIT=>3}
ROW COLUMN+CELL
001201509011001 column=name:, timestamp=1447766492893, value=Jim
001201509011002 column=name:, timestamp=1447766547713, value=Tom
001201509011008 column=name:, timestamp=1447767278902, value=lucy
取出name列族,前3条记录 rowkey[001201509011001,) 左边闭合,右边开的数据。
hbase(main):014:0> scan 'student',{COLUMNS=>['name'],LIMIT=>3,STARTROW=>'',STOPROW=>''}
ROW COLUMN+CELL
001201509011001 column=name:, timestamp=1447766492893, value=Jim
001201509011002 column=name:, timestamp=1447766547713, value=Tom
指定两列:name,grade
hbase(main):018:0> scan 'student',{COLUMNS=>['name','grade'],STARTROW=>'',STOPROW=>''}
ROW COLUMN+CELL
001201509011001 column=grade:, timestamp=1447766751652, value=2
001201509011001 column=name:, timestamp=1447766492893, value=Jim
001201509011002 column=grade:, timestamp=1447767073299, value=6
001201509011002 column=name:, timestamp=1447766547713, value=Tom
001201509011003 column=grade:, timestamp=1447767130750, value=5
001201509011004 column=grade:, timestamp=1447767139371, value=3
001201509011005 column=grade:, timestamp=1447767146338, value=3
001201509011006 column=grade:, timestamp=1447767153088, value=2
001201509011007 column=grade:, timestamp=1447767173296, value=2
001201509011008 column=grade:, timestamp=1447767181639, value=3
001201509011008 column=name:, timestamp=1447767278902, value=lucy
001201509011009 column=grade:, timestamp=1447767190450, value=10
001201509011009 column=name:, timestamp=1447767257259, value=Mike
可以根据 TIMERANGE查询:
hbase(main):020:0> scan 'student',{COLUMNS=>['grade'],LIMIT => 3,TIMERANGE=>[1447766751652,1447767257259]}
ROW COLUMN+CELL
001201509011001 column=grade:, timestamp=1447766751652, value=2
001201509011002 column=grade:, timestamp=1447767073299, value=6
001201509011003 column=grade:, timestamp=1447767130750, value=5
删除数据:
rowkey= 的数据有4列
hbase(main):024:0> get 'student',''
COLUMN CELL
course:english timestamp=1447766987607, value=95
course:math timestamp=1447767003501, value=80
grade: timestamp=1447767073299, value=6
name: timestamp=1447766547713, value=Tom
删除一行数据:
hbase(main):027:0> delete 'student','001201509011002','grade'
hbase(main):028:0> get 'student',''
COLUMN CELL
course:english timestamp=1447766987607, value=95
course:math timestamp=1447767003501, value=80
name: timestamp=1447766547713, value=Tom
查看那一行的数据:发现没有了。
hbase(main):033:0> scan 'student',{COLUMNS=>['grade'],STARTROW=>'',STOPROW=>''}
ROW COLUMN+CELL
0 row(s) in 0.0080 seconds
http://www.cnblogs.com/ggjucheng/p/3379607.html 参考:HBase shell的基本用法
http://blog.csdn.net/u010967382/article/category/2387735 参考 HBase基本数据操作详解【完整版,绝对精品】
hbase shell学习-2的更多相关文章
- 大数据学习路线分享-Hbase shell的基本操作完整流程
HBase的命令行工具,最简单的接口,适合HBase管理使用,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,启动hadoop集群(利用hdfs存储),启动zookeep ...
- Hadoop学习笔记之HBase Shell语法练习
Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...
- HBase学习笔记2 - HBase shell常用命令
转载请标注原链接:http://www.cnblogs.com/xczyd/p/6639397.html 扫表的时候限定行数 scan } 即为扫表的时候,限定只输出五条数据 ============ ...
- 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理
第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...
- HBase学习2(HBase shell)
HBase 常用命令 查看当前用户:whoami 创建表:create '表名', '列族名1','列族名2','列族名N' 查看所有表:list 描述表: describe '表名' 判断表存在: ...
- Hbase深入学习(六) Java操作HBase
Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- 执行HBase shell时出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet错误解决办法(图文详解)
不多说,直接上干货! [kfk@bigdata-pro01 bin]$ jps NameNode ResourceManager JournalNode HMaster DataNode HRegio ...
- Hadoop学习---Hadoop的HBase的学习
Hbase Hbase的特点: Hbase是bigtable的开源的仿制版本 建立在HDFS之上 可靠性,靠性能 大:一个表可以有上亿行,上百万列 面向列:面向列(族)的存储和权限控制,列(族)独立检 ...
随机推荐
- pannel加载窗体
public static void loadFillForm(Panel panel, System.Windows.Forms.Form frm) { if (frm != null && ...
- Hibernate 的一级缓存和二级缓存总结
缓存:缓存是什么,解决什么问题? 位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache.缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更快 ...
- [转]编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
看原文请移步:编写 android.mk 中 LOCAL_C_INCLUDES 的技巧 在编写android.mk的过程中,免不了要修改LOCAL_C_INCLUDES来设置头文件的include目录 ...
- SpringCloud重试机制配置
SpringCloud重试retry是一个很赞的功能,能够有效的处理单点故障的问题.主要功能是当请求一个服务的某个实例时,譬如你的User服务启动了2个,它们都在eureka里注册了,那么正常情况下当 ...
- VC++ 遍历目录
遍历文件目录,即把一个目录里的文件名都取出来.本文是CFileFind类的使用实例的笔记.下面的程序是从一个目录出发,把这个目录里的所有成员按着层次输出. 代码如下: void TravelFolde ...
- Python+Django+js+echarts引入本地js文件的操作方法
1. 选择正确的echarts.js,开发版选择echarts.baidu.com上的源码版,避免出现问题 2. 在项目主目录中新建static文件夹,里面建立js.css.images文件夹 3. ...
- ip_conntrack table full dropping packet解决方案
在一台繁忙的服务器上,建议关闭ip_conntrack模块的加载: 当我们开启iptables后,会有这么个现象发生,丢包.ping的话会断断续续的丢包,ifconfig 会看到网卡dropped:X ...
- c++之——抽象基类
在一个虚函数的声明语句的分号前加上 =0:就可以将一个虚函数变成纯虚函数,其中,=0只能出现在类内部的虚函数声明语句处.纯虚函数只用声明,而不用定义,其存在就是为了提供接口,含有纯虚函数的类是抽象基类 ...
- 纯css实现进度条效果
去年7月份做一个公司商城的微信页面(微信用的chrome内核)需要写一个提示返现进度的进度条效果. 一个完整的进度条效果其实可以拆分一下: 一段背景: 一小段的静态的斜纹进度条: 斜纹进度条用线性渐变 ...
- SQL Server 2008 压缩日志
USE [master]GOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECO ...