hadoop中HBase子项目入门讲解
HBase 是Hadoop的一个子项目,HBase采用了Google BigTable的稀疏的,面向列的数据库实现方式的理论,建立在hadoop的hdfs上,一方面里用了hdfs的高可靠性和可伸缩行,另外一方面里用 了BigTable的高效数据组织形式.可以说HBase为海量数据的real-time相应提供了很好的一个开源解决方案。
HBase提供了一个类似于mysql等关系型数据库的hbase shell,通过该hbase shell可以对HBase的内的相关表、列族等进行操作;HBase shell的help命令比较详细的列介绍了HBase所支持的命令.具体使用方法可以参见其API文档。
在这里简单举个学生表scores的案例进行讲解,表数据如下:
name grad course:math course:english
Tom 1 89 97
Jerry 2 100 90
这里grad对于表来说是一个列,course对于表来说是一个列族,这个列族由两个列组成:math和english,当然我们可以根据我们的需要在course中建立更多的列族,如computer,physics,art等相应的列添加入course列族中。
下面列出常使用的hbase shell 命令如下:
名称
命令表达式
创建表
create '表名称', '列名称1','列名称2','列名称N'
添加记录
put '表名称', '行名称', '列名称:', '值'
查看记录
get '表名称', '行名称'
查看表中的记录总数
count '表名称'
删除记录
delete '表名' ,'行名称' , '列名称'
删除一张表
先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称'
查看所有记录
scan "表名称"
查看某个表某个列中所有数据
scan "表名称" , ['列名称:']
更新记录
就是重写一遍进行覆盖
1、建立一个表格 scores 具有两个列族grad 和courese案例如下:
hbase(main):002:0> create 'scores', 'grade', 'course'
0 row(s) in 4.1610 seconds
2、查看当先HBase中具有哪些表
hbase(main):003:0> list
scores
1 row(s) in 0.0210 seconds
3、查看表的构造
hbase(main):004:0> describe 'scores'
{NAME => 'scores', IS_ROOT => 'false', IS_META => 'false', FAMILIES => [{NAME => 'course', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}, {NAME => 'grade', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}]}
1 row(s) in 0.0130 seconds
4、 加入一行数据,行名称为 Tom 列族grad的列名为”” 值位1
hbase(main):005:0> put 'scores', 'Tom', 'grade:', '1'
0 row(s) in 0.0070 seconds
5、给Tom这一行的数据的列族添加一列 <math,89>
hbase(main):006:0> put 'scores', 'Tom', 'course:math', '89'
0 row(s) in 0.0040 seconds
6、给Tom这一行的数据的列族添加一列 <english,97>
hbase(main):007:0> put 'scores', 'Tom', 'course:english', '97'
0 row(s) in 0.0030 seconds
7、 加入一行数据,行名称为 Jerry 列族grad的列名为”” 值位2
hbase(main):008:0> put 'scores', 'Jerry', 'grade:', '2'
0 row(s) in 0.0040 seconds
8、给Jerry这一行的数据的列族添加一列 <math,100>
hbase(main):009:0> put 'scores', 'Jerry', 'course:math', '100'
0 row(s) in 0.0030 seconds
9、给Jerry这一行的数据的列族添加一列 <english,90>
hbase(main):010:0> put 'scores', 'Jerry', 'course:english', '90'
0 row(s) in 0.0050 seconds
10、查看scores表中Tom的相关数据
hbase(main):011:0> get 'scores', 'Tom'
COLUMN CELL
course:english timestamp=1224726394286, value=97
course:math timestamp=1224726377027, value=89
grade: timestamp=1224726360727, value=1
3 row(s) in 0.0070 seconds
11、判断表是否enable
hbase(main):012:0>is_enabled 'scores'
true
0 row(s) in 0.0110seconds
12、判断表是否disable
hbase(main):013:0>is_disabled 'scores'
false
0 row(s) in 0.0110seconds
13、删除表scores
hbase(main):014:0>disable 'scores'
0 row(s) in 2.0590seconds hbase(main):030:0>drop 'scores'
0 row(s) in 1.1070seconds
14、查询表是否存在
hbase(main):015:0>exists 'scores'
Table scores doesexist
0 row(s) in 0.1610seconds
15、查看scores表中所有数据
hbase(main):016:0> scan 'scores'
ROW COLUMN+CELL
Tom column=course:english, timestamp=1224726394286, value=97
Tom column=course:math, timestamp=1224726377027, value=89
Tom column=grade:, timestamp=1224726360727, value=1
Jerry column=course:english, timestamp=1224726424967, value=90
Jerry column=course:math, timestamp=1224726416145, value=100
Jerry column=grade:, timestamp=1224726404965, value=2
6 row(s) in 0.0410 seconds
16、查看scores表中所有数据courses列族的所有数据
hbase(main):017:0> scan 'scores', ['course:']
ROW COLUMN+CELL
Tom column=course:english, timestamp=1224726394286, value=97
Tom column=course:math, timestamp=1224726377027, value=89
Jerry column=course:english, timestamp=1224726424967, value=90
Jerry column=course:math, timestamp=1224726416145, value=100
4 row(s) in 0.0200 seconds
来源:http://www.yoodb.com/article/display/146
hadoop中HBase子项目入门讲解的更多相关文章
- hadoop中hbase出现的问题
在安装hbase中出现问题如下: ERROR: Can't get master address from ZooKeeper; znode data == null 解决办法: 1.删除nameno ...
- Hadoop中Hbase的体系结构
HRegion 当一张表中的数据特别多的时候,HBase把表拆成多个块,每个块就是一个HRegion,每个region中包含这个表里的所有行 HRegionServer 数据库的数据存在HDFS文件系 ...
- [转载] 详细讲解Hadoop中的简单数据库HBase
转载自http://www.csdn.net/article/2010-11-28/282614 数据模型 HBase数据库使用了和Bigtable非常相似的数据模型.用户在表格里存储许多数据行.每个 ...
- 大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用
ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知. ...
- Hadoop集群中Hbase的介绍、安装、使用
导读 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. 一.Hbase ...
- 什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么
什么是Zookeeper,Zookeeper的作用是什么,它与NameNode及HMaster如何协作?在没有接触Zookeeper的同学,或许会有这些疑问.这里给大家总结一下. 一.什么是Zooke ...
- Hadoop与HBase中遇到的问题
1. Hadoop中遇到的问题 曾经所遇到的问题因为没有记录,所以忘了 (1)NameNode没有启动成功, 是因为你对HDFS多次格式化,导致datanode中与namenode中的VERSION文 ...
- Zookeeper的作用,在Hadoop及hbase中具体作用
什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么 一.什么是Zookeeper ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hado ...
- spring hadoop 访问hbase入门
1. 环境准备: Maven Eclipse Java Spring 版本 3..2.9 2. Maven pom.xml配置 <!-- Spring hadoop --> <d ...
随机推荐
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
转载地址:http://blog.csdn.net/mad1989/article/details/9147661 ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当 ...
- Android中的sp与wp
一.相关code文件 二.code具体分析 lightrefebase: refbase: sp: wp: flag: 三.使用注意事项 不能在把目标对象赋给一个长久存在的sp对象之前赋给一个短生命周 ...
- POJ-3187 Backward Digit Sums (暴力枚举)
http://poj.org/problem?id=3187 给定一个个数n和sum,让你求原始序列,如果有多个输出字典序最小的. 暴力枚举题,枚举生成的每一个全排列,符合即退出. dfs版: #in ...
- leetcode:Remove Linked List Elements
Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...
- java生成带html样式的word文件
参考:http://blog.csdn.net/xiexl/article/details/6652230 最近在项目中需要将通过富文本编辑器处理过的文字转换为Word,查了很久,大家通常的解决办法是 ...
- laravel下的团队开发
当你的团队在开发一个大型应用时,该应用的不同部分可能以不同的速度前进.比如,设想下面的场景:一个开发热源被分配 数据层 的backend工作,而另外一个开发人员做front-end和web/contr ...
- 用Visio画UML用例图
1.用例图 用例图描述参与者所理解的系统功能.主要元素是用例和参与者. 用例图的4个基本组件:参与者(Actor).用例(Use Case).关系(Relationship)和系统. 下面以银行储蓄系 ...
- 51nod1394 差和问题
我只会用线段树写...不喜欢树状数组..其实跑的也不算慢?然后各种*的时候忘了longlong一直WA...药丸! 而且我不怎么会用map离散化...那么就sort+unique #include&l ...
- Java Socket 模拟HTTP请求
public static void main(String[] args) { try { String url = "192.168.1.103"; Socket socket ...
- android中handler用法总结
一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中 ...