zoukankan      html  css  js  c++  java
  • 云计算--hbase shell

    具体的 HBase Shell 命令如下表 1.1-1 所示:

    下面我们将以“一个学生成绩表”的例子来详细介绍常用的 HBase 命令及其使用方法。


    这里 grad 对于表来说是一个列,course 对于表来说是一个列族,这个列族由三个列组成 china、math 和 english,当然我们可以根据我们的需要在 course 中建立更多的列族,如computer,physics 等相应的列添加入 course 列族。(备注:列族下面的列也是可以没有名字的。)
    1). create 命令
    创建一个具有两个列族“grad”和“course”的表“scores”。其中表名、行和列都要用单引号括起来,并以逗号隔开。
    hbase(main):012:0> create 'scores', 'name', 'grad', 'course'

    2). list 命令
    查看当前 HBase 中具有哪些表。
    hbase(main):012:0> list

    3). describe 命令
    查看表“scores”的构造。
    hbase(main):012:0> describe 'scores'

    4). put 命令
    使用 put 命令向表中插入数据,参数分别为表名、行名、列名和值,其中列名前需要列族最为前缀,时间戳由系统自动生成。
    格式: put 表名,行名,列名([列族:列名]),值
    例子:
    a. 加入一行数据,行名称为“xiapi”,列族“grad”的列名为”(空字符串)”,值位 1。
    hbase(main):012:0> put 'scores', 'xiapi', 'grad:', '1'
    hbase(main):012:0> put 'scores', 'xiapi', 'grad:', '2' --修改操作(update)
    b. 给“xiapi”这一行的数据的列族“course”添加一列“<china,97>”。
    hbase(main):012:0> put 'scores', 'xiapi',  'course:china', '97'
    hbase(main):012:0> put 'scores', 'xiapi',  'course:math', '128'
    hbase(main):012:0> put 'scores', 'xiapi',  'course:english', '85'

    5). get 命令
    a.查看表“scores”中的行“xiapi”的相关数据。
    hbase(main):012:0> get 'scores', 'xiapi'
    b.查看表“scores”中行“xiapi”列“course :math”的值。
    hbase(main):012:0> get 'scores', 'xiapi', 'course :math'
    或者
    hbase(main):012:0> get 'scores', 'xiapi', {COLUMN=>'course:math'}
    hbase(main):012:0> get 'scores', 'xiapi', {COLUMNS=>'course:math'}
    备注:COLUMN 和 COLUMNS 是不同的,scan 操作中的 COLUMNS 指定的是表的列族, get操作中的 COLUMN 指定的是特定的列,COLUMNS 的值实质上为“列族:列修饰符”。COLUMN 和 COLUMNS 必须为大写。

    6). scan 命令
    a. 查看表“scores”中的所有数据。
    hbase(main):012:0> scan 'scores'
    注意:
    scan 命令可以指定 startrow,stoprow 来 scan 多个 row。
    例如:
    scan 'user_test',{COLUMNS =>'info:username',LIMIT =>10, STARTROW => 'test', STOPROW=>'test2'}
    b.查看表“scores”中列族“course”的所有数据。
    hbase(main):012:0> scan  'scores', {COLUMN => 'grad'}
    hbase(main):012:0> scan  'scores', {COLUMN=>'course:math'}
    hbase(main):012:0> scan  'scores', {COLUMNS => 'course'}
    hbase(main):012:0> scan  'scores', {COLUMNS => 'course'}

    7). count 命令
    hbase(main):068:0> count 'scores'

    8). exists 命令
    hbase(main):071:0> exists 'scores'

    9). incr 命令(赋值)

    10). delete 命令
    删除表“scores”中行为“xiaoxue”, 列族“course”中的“math”。
    hbase(main):012:0>  delete 'scores', 'xiapi', 'course:math'

    11). truncate 命令
    hbase(main):012:0>  truncate 'scores'

    12). disbale、drop 命令
    通过“disable”和“drop”命令删除“scores”表。
    hbase(main):012:0>  disable 'scores' --enable 'scores' 
    hbase(main):012:0>  drop 'scores'

    13).  status命令
    hbase(main):072:0> status

    14).  version命令
    hbase(main):073:0> version

    另外,在 shell 中,常量不需要用引号引起来,但二进制的值需要双引号引起来,而其他值则用单引号引起来。HBase Shell 的常量可以通过在 shell 中输入“Object.constants”。

    下面我们看看Hbase Shell的一些基本操作命令,我列出了几个常用的hbase Shell命令,如下:

    名称

    命令表达式

    创建表

    create '表名称', '列名称1','列名称2','列名称N'

    添加记录      

    put '表名称', '行名称', '列名称:', '值'

    查看记录

    get '表名称', '行名称'

    查看表中的记录总数

    count  '表名称'

    删除记录

    delete  '表名' ,'行名称' , '列名称'

    删除一张表

    先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步  drop '表名称'

    查看所有记录

    scan "表名称"  

    查看某个表某个列中所有数据

    scan "表名称" , ['列名称:']

    更新记录 

    就是重写一遍进行覆盖

    1.创建一个表

    hbase(main):011:0>create 'member','member_id','address','info'   

    2.获得表的描述

    hbase(main):012:0>list

    3.删除一个列族,alter,disable,enable

    我们之前建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。

    hbase(main):003:0>alter 'member',{NAME=>'member_id',METHOD=>'delete'}

    ERROR: Table memberis enabled. Disable it first before altering.

    报错,删除列族的时候必须先将表给disable掉。

    hbase(main):004:0>disable 'member'   

    该列族已经删除,我们继续将表enable

    hbase(main):008:0> enable 'member'  

    4.列出所有的表

    hbase(main):028:0>list

    5.drop一个表

    hbase(main):029:0>disable 'temp_table'

    6.查询表是否存在

    hbase(main):021:0>exists 'member'

    7.判断表是否enable

    hbase(main):034:0>is_enabled 'member'

    8.判断表是否disable

    hbase(main):032:0>is_disabled 'member'

    1.插入几条记录

    put'member','scutshuxue','info:age','24'

    put'member','scutshuxue','info:birthday','1987-06-17'

    put'member','scutshuxue','info:company','alibaba'

    put'member','scutshuxue','address:contry','china'

    put'member','scutshuxue','address:province','zhejiang'

    put'member','scutshuxue','address:city','hangzhou'

    2.获取一条数据

    获取一个id的所有数据

    hbase(main):001:0>get 'member','scutshuxue'

    获取一个id,一个列族的所有数据

    hbase(main):002:0>get 'member','scutshuxue','info'

    获取一个id,一个列族中一个列的所有数据

    hbase(main):002:0>get 'member','scutshuxue','info:age' 

    6.更新一条记录

    将scutshuxue的年龄改成99

    hbase(main):004:0>put 'member','scutshuxue','info:age' ,'99'

    4.全表扫描:

    hbase(main):013:0>scan 'member'

    5.删除id为temp的值的‘info:age’字段

    hbase(main):016:0>delete 'member','temp','info:age'

    6.删除整行

    hbase(main):001:0>deleteall 'member','xiaofeng'

    7.查询表中有多少行:

    hbase(main):019:0>count 'member'   

    8.给‘xiaofeng’这个id增加'info:age'字段,并使用counter实现递增

    hbase(main):057:0*incr 'member','xiaofeng','info:age'      

    hbase(main):058:0>get 'member','xiaofeng','info:age' 

    hbase(main):059:0>incr 'member','xiaofeng','info:age'

    hbase(main):060:0>get 'member','xiaofeng','info:age' 

    获取当前count的值

    hbase(main):069:0>get_counter 'member','xiaofeng','info:age' 

    9.将整张表清空:

    hbase(main):035:0>truncate 'member'

    Truncating 'member'table (it may take a while):

     - Disabling table...

     - Dropping table...

     - Creating table...

    0 row(s) in 4.3430seconds

    可以看出,hbase是先将掉disable掉,然后drop掉后重建表来实现truncate的功能的。

    转载自http://www.cnblogs.com/linjiqin/archive/2013/03/08/2949339.html和http://blog.csdn.net/scutshuxue/article/details/6988348

  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/ximiaomiao/p/7003704.html
Copyright © 2011-2022 走看看