当前位置: 首页 > 编程日记 > 正文

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                       CELLcourse:english                  timestamp=1224726394286, value=97course:math                 timestamp=1224726377027, value=89grade:                      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.0590secondshbase(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+CELLTom                         column=course:english, timestamp=1224726394286, value=97Tom                         column=course:math, timestamp=1224726377027, value=89Tom                         column=grade:, timestamp=1224726360727, value=1Jerry                        column=course:english, timestamp=1224726424967, value=90Jerry                        column=course:math, timestamp=1224726416145, value=100Jerry                        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+CELLTom                         column=course:english, timestamp=1224726394286, value=97Tom                         column=course:math, timestamp=1224726377027, value=89Jerry                        column=course:english, timestamp=1224726424967, value=90Jerry                        column=course:math, timestamp=1224726416145, value=100
4 row(s) in 0.0200 seconds

来源:http://www.yoodb.com/article/display/146

转载于:https://www.cnblogs.com/MrYoodb/p/4236131.html

相关文章:

C++/C union使用记一下锅

//首先&#xff0c;学习编程一定要记得加几个群或者加几个讨论组&#xff0c;因为这样你才能不断地进步还有吵架/滑稽 记一下 关于使用union结构体时遇到的一些坑 To zero-initialize an object of type T means: — if T is a scalar type (3.9), the object is set to the va…

推荐60+ Flex开发参考网站

推荐60 Flex开发参考网站 下面是一些好的Flex开发的网站或者Flex资源&#xff0c;如果你使用Flex开发&#xff0c;可以参考一下。 网上找的&#xff0c;可以参考参考&#xff01;呵呵 新手入门参考: Adobe Flex 3 - adobe.comAdobe Flex Sample Applications - adobe.comVideo …

PAT(甲级)2020年秋季考试 7-4 Professional Ability Test

解题思路&#xff1a; 1.用拓扑排序判断给定的图是否是有向无环图(DAG) 在这个过程当中&#xff0c;对于入度为0的结点&#xff0c;在布尔数组中标记是初始结点 通过入队的结点个数是否等于总个数判断是不是DAG 注意&#xff1a;虽然有队列&#xff0c;但是不需要inq[]数组…

TestNG:org.openqa.selenium.os.UnixProcess$SeleniumWatchDog错误

在TestNG运行自动化测试用例的时候&#xff0c;浏览器FireFox正确打开&#xff0c;可是在测试用例运行完成后&#xff0c;我调用的是webdriver.quit()关闭程序的&#xff0c;结果却报以下错误&#xff1a; Sep 25, 2014 4:19:32 PM org.openqa.selenium.os.UnixProcess$Seleniu…

项目经理修炼手册 2.1.2 项目经理的基本功

具备以上素质的人&#xff0c;大体上可以算是具有基本的程序员素质了&#xff0c;但是想从程序员成为项目经理&#xff0c;必然还需要有一点进步&#xff0c;那额外的这些素质都有哪些呢&#xff1f; 曾经有人力资源的朋友问我要人&#xff0c;我介绍了几个技术上很不错的人&am…

CSS3动画过渡的jquery动态弹出框插件

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/w178191520/article/details/84111711 在线演示 本地下载

PAT(甲级)2021年春季考试 7-4 Recycling of Shared Bicycles

解题思路&#xff1a; 先用Floyd算法求出全员最短路径矩阵。 然后使用DFS进行遍历&#xff0c;遍历的原则是就近贪心&#xff0c;对于每一个点先遍历离他最近的未访问点。 记录访问点的个数&#xff0c;同时用数组存放已访问点&#xff0c;如果访问点的个数不等于输入点数1(…

JAVA抽象类和接口的区别【附经典分析用例Door】

这篇文章对抽象类和接口说的很详细&#xff0c;希望对大家有所帮助.  abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制&#xff0c;正是由于这两种机制的存在&#xff0c;才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类…

sql 2005提示未能加载包Microsoft SQL Management Studio Package

被360隔离了&#xff0c;请到360恢复区恢复。转载于:https://www.cnblogs.com/janealer/p/4238743.html

puppeteer爬虫的奇妙之旅

(爬虫)[puppeteer|] 爬虫又称网络机器人。每天或许你都会使用搜索引擎&#xff0c;爬虫便是搜索引擎重要的组成部分&#xff0c;爬取内容做索引。现如今大数据&#xff0c;数据分析很火&#xff0c;那数据哪里来呢&#xff0c;可以通过网络爬虫爬取啊。那我萌就来探讨一下网络爬…

(C++)异常退出情况合集(持续更新中)

1.一个有输入的程序&#xff0c;还没做任何输入就自己运行结束了 原因&#xff1a;将长度为10的6次方的整型数组定义在main函数内 2.点击编译运行&#xff0c;显示源文件未编译 原因&#xff1a;定义了一个10的9次方长度的整型数组(虽然在main函数外)

Resin介绍及其使用配置

Resin是一个提供高性能的&#xff0c;支持 Java/PHP 的应用服务器。目前有两个版本&#xff1a;一个是GPL下的开源版本&#xff0c;提供给一些爱好者、开发人员和低流量网站使用&#xff1b;一种是收费的专业版本&#xff0c;增加了一些更加适用于生产环境的特性。 Resin的一些…

Linux基础教程之linux文件权限深度解读

基本命令——来源于马哥教育官网1.cut: cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr 2.authconfig 修改加密方式–passalgosha256 — update3.scp 上传文件-r dir ip:path 传目录file ip:path传文件-P port 指定端口4.rsync 同步文件-avz 源文件 ip:pathscp和rsync都…

浙江大学软件学院2020年保研上机模拟练习 7-4 Shopping With Coupons

目录 解题思路演进过程 第一次程序 第二次程序 第三次程序 解题思路演进过程 首先是题目的理解上&#xff1a;有n个商品&#xff0c;n张优惠券&#xff0c;实际上能买的商品个数最多就是n*n,为啥呢&#xff0c;这题默认是买一个商品必须用一张券&#xff0c;而且一个商品每…

erlang supervisor simple_one_for_one实例

http://www.cnblogs.com/little-ant/p/3196201.html simple_one_for_one vs one_for_one: 相同点&#xff1a; 这种Restart Strategy和one_for_one基本相同(即当一个child process挂掉后&#xff0c;仅仅重启该child process 而不影响其他child process)。 异同点&#xff1a; …

sql isnull函数的使用(转载)

sql isnull函数的使用 ISNULL 使用指定的替换值替换 NULL。 语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。 replacement_value 在 check_expression 为 NULL时将返回的表达…

Error creating bean with name 'defaultHandlerMapping' defined in ServletContext resource

未解决转载于:https://www.cnblogs.com/hqsbrx/p/9969449.html

priority_queue 结构体的优先级设置

目标&#xff1a;使用结构体Node类型的优先队列&#xff0c;让其按照我们希望的顺序进行排序。 预备知识&#xff1a;会结构体的定义&#xff0c;和结构体类型的优先队列的定义&#xff0c;知道优先队列默认是最大堆排序(即top()得到的是最大的元素) 要做的事&#xff1a;在结…

PNG透明兼容IE6的几种方法

png透明针对IE6一直是件挺麻烦的事情&#xff0c;使用的方法也是各有不同&#xff0c;大多的原理是用IE的滤镜来解决的。 语法&#xff1a;filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabledbEnabled , sizingMethodsSize , srcsURL ) enabled : 可选项。…

ntohs的一个简单实现(将网络流中用两个字节16进制表示的资源数(如DNS)和长度转换为整形)...

我们知道在由于大端机和小端机导致网络字节序和主机序有可能是有差异的&#xff0c;我们可以使用系统的ntohs,ntohl,htons和htonl这些处理函数进行转换&#xff0c;下面是我写的一个关于ntohs在处理小端机字节序转换的函数的简单实现. 思想大致如下: 用u_int16_t的2字节16位的整…

循环获取结构体中的健名与值的实现

为什么80%的码农都做不了架构师&#xff1f;>>> type Person struct {Name stringAge int }func main() {a : &Person{"Name", 1}v : reflect.ValueOf(a).Elem() //a需要是引用k : v.Type()for i : 0; i < v.NumField(); i {key : k.Field(i)…

PAT(甲级)2020年春季考试 7-4 Replacement Selection

这种复杂的模拟题&#xff0c;对于我这种菜鸡&#xff0c;只能是根据自己的理解&#xff0c;去把题目给演示出来&#xff0c;然后结合测试用例&#xff0c;一点一点debug打印输出&#xff0c;的确耗时&#xff0c;所以考试要是遇到就放最后吧。 把这题做出来&#xff0c;我的一…

On/Off FlipSwitch 按钮

https://proto.io/freebies/onoff/转载于:https://www.cnblogs.com/ElvinLong/p/4253665.html

P1541 乌龟棋 题解(洛谷,动态规划递推)

题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc.h> #define ll long long using namespace std; ll num[350100]; ll p[5]; ll f[41][41][41][41]; int main() {ios::sync_with_stdio(fa…

asp.net 操作excel的实现代码

http://www.cnblogs.com/fywh/archive/2010/01/25/1655864.html转载于:https://www.cnblogs.com/modernsky2003/archive/2010/02/26/1673925.html

PAT(甲级)2020年春季考试 7-2 The Judger

这道题在模拟过程类型题种算友好的&#xff0c;很平铺直叙&#xff0c;主要就是hash的应用。 有两个小点&#xff1a; 1. 怎样快速求两个未知大小的整数a和b的差值(>0) abs(a,b) 2. 如果某一轮有不止一个人淘汰&#xff0c;应该输出 Round #1: 3 is out. Round #1: 4 …

C++_volatile限定修饰符 Pair类型

Volatile限定修饰符 当一个对象的值可能会在编译器的控制或检测之外被改变时&#xff0c;例如一个被系统时间更改的变量&#xff0c;那么这个变量就应该声明成volatile。 其主要作用是提示编译器&#xff0c;该对象的值可能在编译器未检测到的情况下被改变。因此编译器执行的某…

FWFT FIFO读操作注意

FWFT&#xff1a;First Word Fall Through的缩写&#xff0c;好像是Xilinx的说法&#xff0c;Altera对应的概念是Show-ahead synchronous(SASO)。即数据在rdreq有效之前就有效了&#xff0c;rdreq作为一个应答(ACK)。 需要注意的是当rdreq连续时&#xff0c;容易多读一个数据…

iOS图像识别

iOS通过摄像头动态识别图像 前言&#xff1a; 目前的计算机图像识别&#xff0c;透过现象看本质&#xff0c;主要分为两大类: 基于规则运算的图像识别&#xff0c;例如颜色形状等模板匹配方法基于统计的图像识别。例如机器学习ML&#xff0c;神经网络等人工智能方法**区别&…

PAT(甲级)2019年冬季考试 7-4 Cartesian Tree

这道题利用的是最小堆和中序排序的属性&#xff1a;只要知道根节点&#xff0c;就能得出哪些属于左子树&#xff0c;哪些属于右子树。 开始我一直报段错误&#xff0c;经过筛查&#xff0c;发现是创建树的函数忘记写返回语句 return root. AC代码 #include<cstdio> #i…