zoukankan      html  css  js  c++  java
  • 大数据——hbase

    进入hbase

      

    hbase shell

     部分命令清单

        查询服务器状态   status

        

        查询hbase版本   version

        

    1. 创建一个表

    create 'table1', 'tab1_id', 'tab1_add', 'tab1_info'
    # create '表名', '列族1', '列族2'...
    hbase(main):002:0> create 'person', 'name', 'age'
    # 等价于
    hbase(main):002:0> create 'person',{NAME=>'name' },{NAME=>'age'}
    # 建表时可以指定表属性信息
    hbase(main):005:0> create 'user_info',{NAME=>'base_info',VERSIONS=>3 },{NAME=>'extra_info',IN_MEMORY=>'true'} 

    2. 列出所有的表

    list

    3. 获得表的描述

    describe "table1"

    或者
    desc 'table1'

    4. 删除一个列族  disable alter enable

    disable 'table1'
    alter 'table1', {NAME=>'tab1_add', METHOD=>'delete'}
    enable 'table1'

    5. 查看表是否存在

    exists 'table2'

    6. 判断表是否为‘enable’

    is_enabled 'table1'

    判断表是否为‘disable’

    --(1) 禁用表
    disable 'table_name'
    --(2) 查看表是否禁用
    is_disabled 'table_name'
    --(3) 启用表
    enable 'table_name'
    --(4) 查看表是否启用
    is enabled 'table_name'

    7. 删除一个表

    disable 'table1'
    drop 'table1'

     

    dml操作

    1. 插入几条记录

    1
    2
    3
    4
    5
    6
    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'

    --(1) 
    # put '表名','rowkey','列族名:列名','值'
    put 'person','0001','name:firstname', 'Jed'
    --(2) 可以指定时间戳,否则默认为系统当前时间
    put 'person','0002','info:age',20,1482077777778

    2. 全表扫描  scan 

      

    --(1) 扫描全表
    scan 'person'
    --(2) 扫描时指定列族
    scan 'person', {COLUMNS => 'name'}
    --(3) 扫描时指定列族,并限定显示最新的5个版本的内容
    scan 'person', {COLUMNS => 'name', VERSIONS => 5}
    --(4) 设置开启Raw模式,开启Raw模式会把那些已添加删除标记但是未实际删除的数据也显示出来
    scan 'person', {COLUMNS => 'name', RAW => true}
    --(5) 列的过滤
    # 查询user表中列族为info和data的信息
    scan 'user', {COLUMNS => ['info', 'data']}
    # 查询user表中列族为info,列名为name、列族为data,列名为pic的信息
    scan 'user', {COLUMNS => ['info:name', 'data:pic']}
    # 查询user表中列族为info,列名为name的信息,并且版本最新的5个
    scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}
    # 查询user表中列族为info和data且列名含有a字符的信息
    scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}
    # 查询user表中列族为info,rk范围是[rk0001, rk0003)的数据
    scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}
    # 查询user表中row key以rk字符开头的
    scan 'user',{FILTER=>"PrefixFilter('rk')"}
    # 查询user表中指定时间范围的数据
    scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}

    3. 获得数据 get

        

    --(1) 
    get 'person', '0001'
    --(2) 查询某行,指定列名
    get 'person', '0001', 'name:firstname'
    --(3) 查询某行,添加其他限制条件
    # 查询person表中,rowkey为'0001'的这一行,只显示name:firstname这一列,并且只显示最新的3个版本
    get 'person', '0001', {COLUMNS => 'name:firstname', VERSIONS => 3}
    # 查看指定列的内容,并限定显示最新的3个版本和时间范围 
    get 'person', '0001', {COLUMN => 'name:first', VERSIONS => 3, TIMERANGE => [1392368783980, 1392380169184]}
    # 查询person表中,rowkey为'rk0001',且某列的内容为'中国'的记录
    scan'person', 'rk0001', {FILTER => "ValueFilter(=, 'binary:中国')"}

    4. 更新一条记录  put(把scutshuxue年龄改为99)

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

    4.1修改表

    --(1) 增加列族
    alter 'table_name', 'add_family'
    # 或者
    alter 'table_name', {NAME => 'add_family'}
    # 当然,新增加的列可以设置属性,比如
    alter 'table_name', {NAME => 'add_family', VERSIONS => 3}
    
    --(2) 删除列族
    alter 'table_name', {NAME => 'delete_family', METHOD => 'delete'}
    或者
    alter 'table_name', 'delete' => 'delete_family'
    
    --(3) 添加列族f1同时删除列族f2
    alter 'user', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}
    
    --(4) 修改列族
    # 将user表的f1列族版本号改为5
    alter 'user', NAME => 'f1', VERSIONS => 5

    5. 删除 delete、 deleteall

      5.1 (删除行'scutshuxue', 列族为‘info' 中age的值

      delete 'member', 'scutshuxue', 'info:age'

      5.2 删除整行

      deleteall 'member', 'scutshuxue'

    6. 查询表中有多少行

    count 'member'

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

    incr 'member',  'xiaoming', 'info:age'   

    8. 将整个表清空

    truncate 'member'

    参考:

    https://www.cnblogs.com/kaituorensheng/p/3814925.html

    https://cloud.tencent.com/developer/article/1336648

  • 相关阅读:
    SpringCloud(一)概念及设计
    SpringBoot2(十三)HttpMessageConverter
    SpringBoot2(十二)当Shiro遇上RedisCache
    SpringBoot2(十一)集成RedisCache
    UDP协议解析 以及和TCP协议的区别
    TCP协议解析及相关问题
    mybatis缓存机制
    MYSQL数据库类型与JAVA类型对应表
    Java HashMap问题
    Java数据库事务四大特性以及隔离级别
  • 原文地址:https://www.cnblogs.com/51python/p/10462927.html
Copyright © 2011-2022 走看看