zoukankan      html  css  js  c++  java
  • Hbase操作命令


    1.创建新增表
    建表语句 create '表名','列簇名','列簇名'

    hbase shell> create 'mytable','ct','ct1' 

    语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
    新增或者覆盖数据 put '表名','键名','列名(不是列簇名)','值'
    指定的列名下单元格有值就覆盖..没有值就创建.所以HBase的添加数据和修改数据都是put语句..
    最后的时间戳可以不写..默认为系统时间,如果要写..切记不可使用引号括起来

    hbase shell> put 'mytable','woshikey','ct:msg','99999999999999'
    hbase shell> put 'mytable','woshikey','ct:msg','99999999999999',1462241148

    2.查询表
    列出所有表

    hbase shell> list 

    查看表结构

    hbase shell> describe 'mytable'

    扫描表
    语法: scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}

    hbase shell> scan 'mytable'

    返回所属列簇

    hbase shell> scan 'mytable',{COLUMNS=>'ct'}

    返回所属列簇里每个列的第一个值

    hbase shell> scan 'mytable',{COLUMNS=>'ct',LIMIT=>1} 

    返回所属列簇里指定列的第一个值

    hbase shell> scan 'mytable',{COLUMNS=>'ct:msg',LIMIT=>1}

    获取表数据
    语法: get <table>,<key>[,<columns
    主键过滤

    hbase shell> get 'mytable','rowkey1

    主键+列簇过滤

    hbase shell> get 'mytable','rowkey1','ct'

    主键+列簇+所属列过滤

    hbase shell> get 'mytable','rowkey1','ct:msg'

    主键+列簇过滤

    hbase shell> get 'mytable','rowkey1',{COLUMN=>'ct'}

    主键+列簇+所属列过滤

    hbase shell> get 'mytable','rowkey1',{COLUMN=>'ct:msg'}

    获取表行数
    语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
    INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
    例如,查询表t1中的行数,每100条显示一次,缓存区为500

    hbase shell> count 'mytable', {INTERVAL => 100, CACHE => 500}

    3.删除表
    停用表

    hbase shell> disable 'mytable' 

    删除表

    hbase shell> drop 'table' 

    删除某个单元值的值会删除所有版本,必须指定列名
    语法:delete <table>, <rowkey>, <family:column> , <timestamp>
    测试后发现后边跟时间戳也没有用,依然会删除所有版本

    hbase shell> delete 'mytable','rowkey','ct:msg'

    删除行或者整个列簇
    可以不指定列名,删除整行数据
    语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>

    hbase shell> deleteall 'mytable','ct'
    hbase shell> deleteall 'mytable'

    清空表数据
    语法: truncate <table>
    等同于 disable -> drop -> create

    hbase shell> truncate 'mytable'

    4.修改表
    修改表数据 put ‘表明’,‘主键’,‘列族:列名’,‘新值’

    put 't_user' ,'1001','st1:age','19'

    修改表的结构..删除某列簇
    删除表中的列簇 注: 要求先disable 表,,修改后enable表
    请严格区分大小写

    hbase shell> disable 'mytable'
    hbase shell> alter 'mytable',{NAME=>'ct',METHOD=>'delete'}
    hbase shell> enable 'mytable'

    修改表结构 新增一个列簇
    请严格区分大小写

    hbase shell> disable 'mytable'
    hbase shell> alter 'mytable',{NAME=>'columnsfamilyName',VERSIONS=>1}
    hbase shell> enable 'mytable'

    停用表

    hbase shell> disable 'mytable' 

    为表创建快照..这时还没有复制数据
    hbase shell> snapshot 'mytable', 'tableSnapshot'
    根据某个快照而创建新表..此时复制数据

    hbase shell> clone_snapshot 'tableSnapshot', 'newTableName' 

    删除快照

    hbase shell> delete_snapshot 'tableSnapshot' 

    删除原来的表

    hbase shell> drop 'mytable'
  • 相关阅读:
    SSH2练习中问题之org.apache.jasper.JasperException: /findAllProductions_list.jsp(31,1) TLD又はタグファイル中のattribute指示子に従って属性itemsはどんな式も受け付けません解决方案
    关于HibernateTempleate模版很多代码可以直接使用,是开发人员不可多得选择
    Java实现权限控制之2
    struts 之 constant
    JSTL表达式之<c:forEach>
    关于事后检查和确认
    关于删除
    jcommander 解析boolean参数
    多线程
    关于proto文件的更新
  • 原文地址:https://www.cnblogs.com/ypsy/p/9969448.html
Copyright © 2011-2022 走看看