• HBase操作命令总结



    1,如何运行HBase


    1,如何查找hbase的安装目录


    whereis用来查找程序的安装目录、帮助文档等等,如下:

    whereis hbase

    结果如下,目录下一级包含bin的就是hbase的安装目录。
    [hadoop@cdh002 bin]$ whereis hbase
    hbase: /usr/bin/hbase /etc/hbase /usr/lib/hbase

    2,如何运行hbase命令

    首先切换到hbase的安装目录
    cd /usr/lib/hbase/bin/

    执行hbase shell
    hbase shell

    3 如何查找当前用户


    使用whoami命令可查看当前用户

    hbase(main):001:0> whoami
    hadoop (auth:SIMPLE)
    groups: hadoop

    4 HBase如何删除字符


    需要同时按住Ctrl + Backspace 才能删除之前输入的字符。

    2,如何操作HBase表结构


    1,查看有哪些表


    list

    2,如何创建HBase表


    创建HBase表不需要指定列,只需要指定列簇就行了
    语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
    比如创建一个表,保存用户的个人信息infos和工作经历jobs
    (1)
    hbase(main):007:0> create "user",{ NAME => "infos",VERSIONS => 1},{NAME => "jobs"}
    0 row(s) in 4.6440 seconds

    => Hbase::Table - user

    注意:NAME要大写,否则报错提示未定义的本地变量
    NameError: undefined local variable or method `name' for #<Object:0x79972a95>

    (2)简单的写法:表名,列簇
    create "user","infos","jobs"

    3,如何查看HBase的表结构


    desc "user" 或者 describe "user"

    hbase(main):008:0> describe "user"
    Table user is ENABLED
    user
    COLUMN FAMILIES DESCRIPTION
    {NAME => 'infos', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0'
    , VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_C
    ELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
    {NAME => 'jobs', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0',
    VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CE
    LLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
    2 row(s) in 0.0400 seconds

    表结构信息显示有两个列簇

    4,如何修改HBase的表结构


    (1)首先要禁用表
    disable "user"
    (2)
    删除字段指定METHOD => "delete"
    因为有3台机器,因此更新了3台机器 Updating all regions with the new schema

    hbase(main):002:0> alter "user",{NAME => "infos"},{NAME => "jobs",METHOD => "delete"},{NAME => "educations"}
    Updating all regions with the new schema...
    1/1 regions updated.
    Done.
    Updating all regions with the new schema...
    1/1 regions updated.
    Done.
    Updating all regions with the new schema...
    1/1 regions updated.
    Done.
    0 row(s) in 8.0190 seconds

    (3)然后启用表
    enable 'user'

    5,如何删除HBase表


    要先禁用表
    hbase(main):004:0> disable "user"
    0 row(s) in 0.0410 seconds

    再drop表
    hbase(main):005:0> drop "user"
    0 row(s) in 1.3550 seconds


    3,如何操作HBase表数据


    1,hbase如何插入数据


    语法:put <table>,<rowkey>,<family:column>,<value>
    put 表名,列簇:列,值

    hbase(main):020:0> put "user","rowno001","infos:name","zhangsan"
    0 row(s) in 0.1400 seconds

    hbase(main):021:0> put "user","rowno001","infos:age","18"
    0 row(s) in 0.0100 seconds

    注意:
    (1)一次只能插入一列的值;同一行的多列,要分开列插入

    2,查询记录


    (1)查看所有记录
    scan "user"
    数据量很大时,千万不要用这个命令
    (2) 查找前2条数据
    hbase(main):028:0> scan "user",{LIMIT => 2}
    ROW COLUMN+CELL
    rowno001 column=infos:age, timestamp=1528170157838, value=18
    rowno001 column=infos:name, timestamp=1528170127697, value=zhangsan
    rowno002 column=infos:age, timestamp=1528170336721, value=19

    (3)查找某范围内的记录
    hbase(main):032:0> scan "user",{ STARTROW => "rowno002", ENDROW => "rowno004"}
    ROW COLUMN+CELL
    rowno002 column=infos:age, timestamp=1528170336721, value=19
    rowno003 column=infos:name, timestamp=1528171140729, value=xiaosan

    注意:ENDROW是不包含的。

    (4)查找某一行记录
    hbase(main):034:0> get "user","rowno001"
    COLUMN CELL
    infos:age timestamp=1528170157838, value=18
    infos:name timestamp=1528170127697, value=zhangsan
    2 row(s) in 0.0250 seconds

    可以指定列名
    hbase(main):035:0> get "user","rowno001","infos:name"
    COLUMN CELL
    infos:name timestamp=1528170127697, value=zhangsan


    3,统计记录


    (1)统计总共多少行
    hbase(main):033:0> count "user"
    3 row(s) in 0.0290 seconds
    => 3


    4,修改一条数据


    和添加数据的命令是一致的,修改一下值就行,会直接覆盖
    put "user","rowno003","infos:name","san"

    5,删除数据


    删除某一列:
    delete "user","rowno003","infos:name"

    删除某一行:
    注意删除某一行,用的是deleteall
    deleteall "user","rowno002"

  • 相关阅读:
    Linux文本检索命令grep笔记
    Python中字典的相关操作
    Go 语言函数闭包
    Go 语言多维数组
    Go 错误处理
    Go 语言接口
    Go 语言类型转换
    Go 语言递归函数
    Go 语言Map(集合)
    Go 语言范围(Range)
  • 原文地址:https://www.cnblogs.com/wang7/p/9139136.html
Copyright © 2020-2023  润新知