zoukankan      html  css  js  c++  java
  • hbase之shell操作

     hbase之shell操作

     hbase之shell操作(帮助命令) 

    进入hbase的客户端:安装过hbase的节点都可以

    进入客户端命令:hbase shell

    hbase的客户端操作界面:hbase(main):001:0>

    查看帮助命令:help

    查询相关命令的帮助:help command

    ctrl+backspace是删除 

    ----------------------------------------------------------------------------

    hbase之shell操作(namespace操作) 

    一、简介

    hbase中没有数据库概念,hbase中有namespace相当于hive中的数据库。

    Group name: namespace

    Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables

    二、创建

          help "create_namespace"

    create_namespace "name"

    三、查看namespace列表

          list_namespace

    四、查看详细描述信息

          describe_namespace "name"

    五、显示当前namespace下的所有表

          list_namespace_tables “name”

    六、删除 namespace

          drop_namespace "name"

    七、注意

          默认hbase中有2个namespace

          default:默认,默认建表不指定namespace 就在这个下面的

          hbase:hbase的系统namespace 存储hbase本身相关信息的

    -----------------------------------------------------------------------

     hbase之shell操作(DDL)

    一、简介

    Group name: ddl

    Commands: alter, alter_async, alter_status, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, locate_region, show_filters

    二、创建表

    1、语法1

          craete "namespace:表名","family column","family column"

          create "bdtest:test1","info1","info2"

    2、语法2

          {表的一些属性 必须包含列族}

       create "namespace:表名",{NAME => “”,VERSIONS => 3,TTL =>},{NAME => ""}

          常用的属性:VERSIONS => 1  指定数据版本, TTL => 2592000  指定数据存储周期

    create "bdtest:test2",{NAME => "info1"},{NAME => "info2",VERSIONS => 3}

    三、删除表

          先禁用表,在删除表

    drop "namespace:表名"

    disable "bdtest:test1"

    drop "bdtest:test1"

          drop_all

    hbase> drop_all 'namespace:.*|t.*'

    删除指定的所有表

    四、修改表

    1、修改属性信息

          alter 'namespace:表名', '列族', {NAME => '列族', IN_MEMORY => true}, {NAME => '列族', VERSIONS => 5}

          alter "bdtest:test1",{NAME => "info1",VERSIONS => 3}

          其中不在花括号中的列族,可以省略,如果要添加一个默认状态下的列族可以使用。

    2、添加列族

          alter "bdtest:test1",{NAME => "info3",VERSIONS => 3}

          修改表的时候,列族不存在,事实上就是添加

          alter "bdtest:test1","info4",{NAME => "info5",VERSIONS => 3}

    3、删除列族

    hbase> alter 'namespace:表名', NAME => '列族', METHOD => 'delete'

          hbase> alter 'namespace:表名', 'delete' => '列族'

          METHOD 用于指定对当前列族的操作

          alter "bdtest:test1",NAME => "info5",METHOD => 'delete'

          alter "bdtest:test1",'delete' => "info4"

          注意: 表中至少有一个列族,如果表中只剩一个列族,不允许删除

    五、查看表列表

    list

    hbase> list  查看所有的表列表

    hbase> list 'abc.*'  查看所有的指定字符开头的表default下的

    hbase> list 'ns:abc.*'  查看指定的namespace下的所有的指定字符开头的表列表

          list 'bdtest:t.*'

    hbase> list 'ns:.*' 查看指定namespace下的所有表列表

          list "bdtest:.*"

    六、查看表的详细信息

          help 'describe'

    hbase> describe 't1'  查看default下的表的描述信息

    hbase> describe 'ns1:t1' 查看指定namespace下的所有表描述信息的

    简写:

    hbase> desc 't1'

    hbase> desc 'ns1:t1'

          建表过程中,没有指定版本信息,默认1个。默认存储周期,永久存储 ttl=> forever

    七、查看表状态

    1、两种状态

          启用:enable 可以执行操作的

          禁用:disable 不可以执行操作

    2、查看表是否禁用

          is_disabled "namespace:表名"

          is_disabled "bdtest:test1"

          禁用true 启用 false

    3、查看表是否启用

          is_enabled "namespace:表名"

          is_enabled "bdtest:test1"

          启用 true 禁用 false

    4、注意

          默认建表的时候,是启用状态

    八、禁用表和启用表

          disable "namespace:表名"

    enable“namespace:表名”

    disable "test1"

    is_disabled "test1"

    enable "test1"

    is_disabled "test1"

    disable_all "namespace:.*|t.*"  禁用指定的所有表

    enable_all  "namespace:.*|t.*"  启用指定的所有表

    disable_all "bdtest:.*"

    is_disabled "bdtest:test1"

    enable_all "bdtest:.*"

    is_disabled "bdtest:test1"

    ------------------------------------------------------------------

     hbase之shell操作(DML) 

    一、简介

    Group name: dml

    Commands: append, count, delete, deleteall, get, get_counter, get_splits, incr, put, scan, truncate, truncate_preserve

    二、添加数据

    行键   列族:列  值

    hbase> put 'namespace:表名', '行键', '列族:列', '列的值',[ts1(时间戳 不给默认系统时间戳)]

    put "bdtest:test2","rk001","info1:name","zs"

    put "bdtest:test2","rk001","info1:age","18"

    put "bdtest:test2","rk001","info1:addr","hebei"

    三、删除数据

    hbase> delete 'namespace:表名', '行键', '列族:列', 时间戳

    base_info:age timestamp=1558847233830, value=25

    delete "user_info","zhangsan_20150701_0004","base_info:age",

    四、清空表数据

    truncate "namespace:表名"

    is_disabled "user_info"

    1、- Disabling table...  禁用表

    2、- Truncating table...  清空表

    3、启用表

    五、扫描查询表数据(scan)

    1、全表扫描

          表下的所有列族的所有列全部显示

    scan "namespace:表名"

          scan "user_info"

    2、指定列显示

    scan "namespace:表名",{COLUMNS => '列族:列名'}

          scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"]}

          scan "user_info",{COLUMNS => "base_info:age"}

          scan "user_info",{COLUMNS => ["base_info:name","base_info:age"]}

    3、指定显示行数LIMIT

    scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"],LIMIT => 需要显示的行数}

          scan "user_info",{COLUMNS => "base_info:age",LIMIT => 5}

    4、指定rowkey范围显示

    STARTROW指定起始的行键,ENDROW指定结束的行键

          scan "namespace:表名",{COLUMNS => ['列族:列名',"列族:列名"],LIMIT=> ,STARTROW => "",ENDROW => ""}

    scan "user_info",{STARTROW => "baiyc_20150716_0008",ENDROW => "zhangsan_20150701_0004"}

          这种显示方式 包含左边界  不包含右边界

          只指定STARTROW 不指定 ENDROW 显示到结尾

          scan "user_info",{COLUMNS => "base_info:age",STARTROW => "baiyc_20150716_0008",ENDROW => "zhangsan_20150701_0004"}

    5、指定时间戳范围

          scan "namespace:表名",{COLUMNS=>"",TIMERANGE=>,LIMIT=>}

          scan "user_info",{COLUMNS => "base_info:name",TIMERANGE => [1558844852080,1558844855890]}

          时间戳范围,含头,不含尾

          查询数据 TIMERANGE => [起始时间戳,终止的时间戳]

    6、总结

          scan进行表数据查询的时候2种方式

          (1)全表扫描

          (2)指定rowkey范围进行查询

    六、单条查询表数据(get)

    1、查询指定行键

          查询指定行键的 只能查询一条数据的

          hbase> get 'namespace:表名',"行键"

          get "user_info","zhangsan_20150701_0004"

    2、查询指定一行数据的列

    COLUMN => []

          get "namespace:表名","行键",{COLUMN => ["列族:列",“列族:列”]}

    get "user_info","zhangsan_20150701_0004",{COLUMN => ["base_info:name","base_info:age"]}

    3、指定查询一行数据的时间戳

          查看某一列指定版本的数据

          get "user_info","zhangsan_20150701_0004",{TIMESTAMP => 1558844848954}

          get "user_info","zhangsan_20150701_0004",{COLUMN => "base_info:age",TIMESTAMP => 1558847233830}

          put "user_info","zhangsan_20150701_0004","base_info:age","25"

    4、指定查询的数据时间戳范围

          get "user_info","zhangsan_20150701_0004",{TIMERANGE => [1558844823464,1558847245992]}

          时间戳,含头不含尾的

     

  • 相关阅读:
    ASP.NET 防盗链的实现[HttpHandler]
    html打印表格每页都有的表头和打印分页
    spring是怎样管理mybatis的及注入mybatis mapper bean的
    浅谈Log4j和Log4j2的区别
    git tag — 标签相关操作
    java cocurrent包
    线程实现异步
    使用Shell脚本查找程序对应的进程ID,并杀死进程
    shell脚本监测文件变化
    spring boot的几种配置类型
  • 原文地址:https://www.cnblogs.com/lizm166/p/13354544.html
Copyright © 2011-2022 走看看