大数据学习之HBase——03Hbase shell操作

1. 进入Hbase命令行

hbase shell

大数据学习之HBase——03Hbase shell操作_第1张图片

2. Hbase命名空间操作

  1. 列出所有命名空间
    list_namespace
    大数据学习之HBase——03Hbase shell操作_第2张图片

  2. 创建namespace

    create_namespace 'ns1'
    
  3. 查询指定namespace下的表

    list_namespace_tables 'ns1'
    

    大数据学习之HBase——03Hbase shell操作_第3张图片

  4. 删除指定namespace

    # 前提是该namespace是空的
    drop_namespace 'ns1'
    

3. Hbase表的操作

关于表的操作包括(创建create,查看表列表list。查看表的详细信息desc,删除表drop,清空表truncate,修改表的定义alter)

1. 创建: create
  1. 创建表时必须指定列族

    # t1/t2为表名, f1, f2, f3是列族的名
    create 't1', {NAME => 'f1'}, {NAME =>'f2'}, {NAME =>'f3'}
    create 't2', 'f1', 'f2', 'f3'
    
    # 在指定namespace下创建表, 如果不指定,则默认在default下创建
    create 'ns1:t1', 'cf1'
    

    大数据学习之HBase——03Hbase shell操作_第4张图片

  2. 可以给每个列族指定版本数

    create 't3', {NAME=>'f1', VERSIONS=>5}, {NAME=>'f2', VERSIONS=>3}
    

    大数据学习之HBase——03Hbase shell操作_第5张图片

2. list 查看表列表
  1. 查看所有表

    list
    
  2. 查看以t开头的表

    list 't.*'
    
  3. 获取指定namespace下的表

    list_namespace_tables 'default'
    

    大数据学习之HBase——03Hbase shell操作_第6张图片

3. desc: 查看表的详细信息
desc '表名'
4. alter: 修改表的定义
  1. 添加一个列族

    alter 't1', 'f4'
    alter 't2', {NAME=>'f4'}
    

    大数据学习之HBase——03Hbase shell操作_第7张图片

  2. 删除列族

    alter 't1', 'delete' => 'f3'
    alter 't2', NAME=>'f3', METHOD=>'delete'
    

    大数据学习之HBase——03Hbase shell操作_第8张图片

  3. 添加列族和删除列族同时进行

    # 必须将添加的列族写在前面, 否则会报错
    alter 't1', 'f3', 'delete'=>'f4'
    
    alter 't2', {NAME=>'f3'}, {NAME=>'f4', METHOD=>'delete'}
    

    大数据学习之HBase——03Hbase shell操作_第9张图片

5. truncate: 清空表
truncate 't3'
6. disable/enable: 停用表
  1. 停用表

    disable 'user_info'
    

    大数据学习之HBase——03Hbase shell操作_第10张图片

  2. 启用表

    enable 'user_info'
    

大数据学习之HBase——03Hbase shell操作_第11张图片

7. drop: 删除表

删除表之前必须先停用该表

drop 't3'

3. HBase表中数据的操作

关于数据的操作(增put,删delete,查get + scan, 改==变相的增加)

1. put: 增

格式:
put ‘表名’, ‘rowkey’, ‘列族:列’, ‘值’
put ‘表名’, ‘rowkey’, ‘列族:列’, ‘值’, 时间戳

  1. 不设置时间戳

    # 向user_info表中 rowkey为user01, 列为base_info:name的单元格插入数据"zhangsan1"
    put 'user_info', 'user01', 'base_info:name', 'zhangsan1'
    
    # 为了后续测试, 插入以下数据集
    put 'user_info', 'user02', 'base_info:name', 'zhangsan2'
    put 'user_info', 'user03', 'base_info:name', 'zhangsan3'
    put 'user_info', 'user04', 'base_info:name', 'zhangsan4'
    put 'user_info', 'user05', 'base_info:name', 'zhangsan5'
    put 'user_info', 'user06', 'base_info:name', 'zhangsan6'
    put 'user_info', 'user07', 'base_info:name', 'zhangsan7'
    put 'user_info', 'user08', 'base_info:name', 'zhangsan8'
    
    put 'user_info', 'user01', 'base_info:age', '21'
    put 'user_info', 'user02', 'base_info:age', '22'
    put 'user_info', 'user03', 'base_info:age', '23'
    put 'user_info', 'user04', 'base_info:age', '24'
    put 'user_info', 'user05', 'base_info:age', '25'
    put 'user_info', 'user06', 'base_info:age', '26'
    put 'user_info', 'user07', 'base_info:age', '27'
    put 'user_info', 'user08', 'base_info:age', '28'
    
    put 'user_info', 'user01', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user02', 'extra_info:Hobbies', 'sport'
    put 'user_info', 'user03', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user04', 'extra_info:Hobbies', 'sport'
    put 'user_info', 'user05', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user06', 'extra_info:Hobbies', 'sport'
    put 'user_info', 'user07', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user08', 'extra_info:Hobbies', 'music'
    
    put 'user_info', 'user01', 'base_info:name', 'baiyc1'
    put 'user_info', 'user02', 'base_info:name', 'baiyc2'
    put 'user_info', 'user03', 'base_info:name', 'baiyc3'
    put 'user_info', 'user04', 'base_info:name', 'baiyc4'
    put 'user_info', 'user05', 'base_info:name', 'baiyc5'
    put 'user_info', 'user06', 'base_info:name', 'baiyc6'
    put 'user_info', 'user07', 'base_info:name', 'baiyc7'
    put 'user_info', 'user08', 'base_info:name', 'baiyc8'
    
    put 'user_info', 'user01', 'base_info:age', '21'
    put 'user_info', 'user02', 'base_info:age', '22'
    put 'user_info', 'user03', 'base_info:age', '23'
    put 'user_info', 'user04', 'base_info:age', '24'
    put 'user_info', 'user05', 'base_info:age', '25'
    put 'user_info', 'user06', 'base_info:age', '26'
    put 'user_info', 'user07', 'base_info:age', '27'
    put 'user_info', 'user08', 'base_info:age', '28'
    
    put 'user_info', 'user01', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user02', 'extra_info:Hobbies', 'sport'
    put 'user_info', 'user03', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user04', 'extra_info:Hobbies', 'sport'
    put 'user_info', 'user05', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user06', 'extra_info:Hobbies', 'sport'
    put 'user_info', 'user07', 'extra_info:Hobbies', 'music'
    put 'user_info', 'user08', 'extra_info:Hobbies', 'sport'
    
  2. 设置时间戳

put 't1', 'r1', 'cf1:name', 'Jack', 22222
2. get: 查

get方式必须指定rowkey, 只能获取某一条数据

  1. 获取表中指定rowkey下的所有数据

    # 获取user_info表中rowkey为user01的所有数据
    get 'user_info', 'user01'
    

    大数据学习之HBase——03Hbase shell操作_第12张图片

  2. 获取表中指定rowkey下指定列族的所有数据

    # 获取user_info 表中rowkey为user01下列族base_info下的所有数据
    get 'user_info', 'user01', 'base_info'
    

    大数据学习之HBase——03Hbase shell操作_第13张图片

  3. 获取表中指定rowkey下指定列的所有数据

    # 获取user_info 表中rowkey为user01的列族base_info中name列的所有数据
    get 'user_info', 'user01', 'base_info:name'
    

    大数据学习之HBase——03Hbase shell操作_第14张图片

  4. 获取不同版本的数据

    # 如果没有指定时间戳, 则默认是插入时的时间戳
    put 't1', 'r1', 'cf1:name', 'Tom'
    put 't1', 'r1', 'cf1:name', 'Jack', 22222
    # 默认获取最新版本的数据, 时间戳最大的版本
    get 't1', 'r1'
    

    大数据学习之HBase——03Hbase shell操作_第15张图片

    get 't1', 'r1', {COLUMN=>'cf1:name', VERSIONS=>2}
    

    大数据学习之HBase——03Hbase shell操作_第16张图片

3. scan: 查
  1. 获取表中所有数据

    scan 'user_info'
    

    大数据学习之HBase——03Hbase shell操作_第17张图片

  2. 查询大于等于指定rowkey的数据

    包括开始的rowkey

    scan 'user_info', STARTROW=>'user07'
    scan 'user_info', {STARTROW=>'user07'}
    

    大数据学习之HBase——03Hbase shell操作_第18张图片

  3. 查询小于指定rowkey的数据

    不包括结束的rowkey

    scan 'user_info', STOPROW=>'user03'
    scan 'user_info', {STOPROW=>'user03'}
    

    大数据学习之HBase——03Hbase shell操作_第19张图片

  4. 查询指定范围内的rowkey的数据

    包括开始的rowkey, 但是不包括结束的row可以

    scan 'user_info', STARTROW=>'user05', STOPROW=>'user07'
    scan 'user_info', {STARTROW=>'user05', STOPROW=>'user07'}
    

    大数据学习之HBase——03Hbase shell操作_第20张图片

  5. 查询表中指定列族为base_info的信息

    scan 'user_info', {COLUMNS => 'base_info'}
    

    大数据学习之HBase——03Hbase shell操作_第21张图片

3. delete
  1. 删除表中指定rowkey中指定列的数据

    # 删除user_info表中, rowkey为user01, base_info:age列下的数据
    delete 'user_info', 'user01', 'base_info:age'
    
  2. delete 删除时, 必须定位到列, 不能直接删列族, 不会生效

    大数据学习之HBase——03Hbase shell操作_第22张图片

5. deleteall: 删除整行数据

delete一条语句只能删除一个单元中的数据, 如果要删除整行数据, 则需要使用deleteall

deleteall 'user_info', 'user07'

你可能感兴趣的:(Hadoop,Hbase,大数据学习)