• Hbse常用命令


    1、Hbase shell客户端使用

           a、进入客户端 hbase shell

           b、常用命令

                 list  列出Hbase中存在的所有表

                 alter 修改列簇(column family)模式

                 count  统计表中行的数量

                 create 创建表

                 describe 显示表相关的详细信息

                 delete 删除指定对象的值(可以为表,行、列对应的值,另外也可以指定时间戳的值)

                 deleteall  删除指定行的所有元素值

                 disable 使表无效

                 drop 删除表

                 enable 使表有效

                 exists 测试表是否存在

                 exit 退出Hbaseshell

                 get 获取行或单元(cell)的值

                 incr 增加指定表,行或列的值

                 put 向指向的表单元添加值

                 tools列出Hbase所支持的工具

                 scan 通过对表的扫描来获取对用的值

                 status 返回Hbase集群的状态信息

                 shutdown 关闭Hbase集群(与exit不同)

          c、关于表: (创建表create、查看表列表list、查看表的详细信息desc、删除表drop、清空表truncate、修改表的定义alter、)

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

          e、查看有哪些命令: help;如果哪个命令不会使用 help "command"                     

    2、操作例子

           a、创建表student和stu

                create 'student','cf1'

                create 'stu','cf1','cf2','cf3'

               查看表的描述: desc 'student'

                一个大括号就相当于一个列簇: {NAME => 'cf1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACH
    E_DATA_ON_WRITE => 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER
     => 'ROW', CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false',
     COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}

              

                stu插入一条数据:

                put 'stu','rk001','cf1:age','18'

                put 'stu','rk001','cf1:name','zhangsan'  发现hdfs中stucf1下没有内容去观察对应表的region在那一台服务器上杀掉regionserver之后就会有了...

                scan 'stu'

               解释:/hbase/data/default/stu/8ca25fe0d49972b2efb4c36537daf1a2/cf1/d89f620da4754e1092402b577f589f8a

                      data:目录即是Hbase自动生成的用来存储所有表数据的一个目录

                      default:默认的一个namespace

                      stu:就是一张表,其实就是一个文件夹

                      8ca25fe0d49972b2efb4c36537daf1a2:就是stu这张表中的一个region

                      cf1:就是这个region中第一个列簇所对应的一个store

                      d89f620da4754e1092402b577f589f8a:这就是用来存储真实数据的hfile

           b、创建表指定版本

            create 'stu2',{NAME => 'cf1', VERSIONS => 5},{NAME => 'cf2', VERSIONS => 2}    cf1下任何一个key-value最多版本5个

            放入数据:

           put 'stu2','rk01','cf1:age',18

           put 'stu2','rk01','cf1:age',19

           put 'stu2','rk01','cf1:age',20

           put 'stu2','rk01','cf1:age',21

          put 'stu2','rk01','cf1:name','lisi'

           get 'stu2','rk01' 出现:(默认的情况下是最新的值,get指定rowkey,scan )

                  COLUMN                             CELL                                                                                                
                   cf1:age                           timestamp=1552348396259, value=21                                                                   
                   cf1:name                          timestamp=1552348699286, value=lisi                                                                 
                  1 row(s)
                  Took 0.0201 seconds

         put 'stu2','rk01','cf1:age',22

         get 'stu2','rk01',{COLUMN => 'cf1:age', VERSIONS => 5}

         put 'stu2','rk01','cf1:age',23

         get 'stu2','rk01',{COLUMN => 'cf1:age', VERSIONS => 5}  18不出现了

         get 'stu2','rk01',{COLUMN => 'cf1:age', TIMESTAMP => 1552348396259}  根据时间戳获取唯一的一个

         put 'stu2','rk01','cf2:p','xxxxxx'

         get 'stu2','rk01','cf2'

        查询分页:

                        scan  'stu2',{COLUMNS => 'cf1:age'}

                        scan  'stu2',{COLUMNS => 'cf1:age', LIMMIT 10, STARTROW => 'xx'}

        删除某个时间戳的: delete 'stu2','rk01','cf1:age',1552348396259;这个时间戳以前的数据都被删除了

        put命令的使用:

                                put 表 行健 列定义 值

                                put 'stu2','rk01','cf1:age',22

                                get  表  行健

                                get  表  行健  列簇 

                                get  表  行健  列簇:列 

                                get  表  行健  列簇:列  时间戳

                                scan  表

                                scan  表  起始行健  结束行健

                                scan  表  列簇

                                scan  表  列簇:列

           c、删除表

                 disable 'student'

                 drop 'student'

           d、清空truncate 'stu'   删除数据key-value也删除

                 drop  == 情况数据truncate + 删除表定义

           e、Hbase的表一经创建之后,那么列簇的名字就不能更改了,列簇的属性可以改。

                 如果说列簇的名字指定有误,可以通过线删除列簇,然后添加回来。

                 但是你必须要承受,损失这个列簇数据的代价。

           f、修改alter

               1、增加一个列簇

                        alter 'stu2',NAME=>'f1',VERSIONS=>4  增加一个列簇f1,每个region会多一个store

                        Updating all regions with the new schema...
                        1/1 regions updated.
                        Done.
                        Took 2.8088 seconds

               2、删除一个列簇

                     alter 'stu2', NAME => 'cf1',METHOD => 'delete'

                     alter 'stu2', 'delete' => 'f1'

           g、show_filters 查看所有过滤器

           h、往HBase插入数据的五种方式

                     1、table.put(put)

                     2、table.put(puts)

                     3、MR

                     4、多线程多客户端并发写入

                     5、bulkload 其实是使用MR程序提前生成好HFile

                                      1、首先往WAL LOG中记录日志数据

                                      2、把数据更新到内存

                                      3、内存达到一定的值,就会flush数据到磁盘HFile

                                      4、Hfile达到一定数据之后,就会进行合并,storefile

  • 相关阅读:
    超简单的博弈算法题,一行代码解决!
    图解「剑指Offer」之用前序和中序遍历序列构建二叉树
    GitHub 标星 2.4w!最火正则表达式课程学起来!
    经典面试题:最长公共子序列
    记一道字节跳动的算法面试题
    LeetCode 实战:「图解」二叉树中的最大路径和
    你离攻克数据结构与算法,只差这一步
    在《我的世界》里从零打造一台计算机有多难?复旦本科生大神花费了一年心血...
    三分钟理解字符串经典考题:有效的字母异位词
    【算法之美】改变世界的十位算法大师
  • 原文地址:https://www.cnblogs.com/zzmds/p/14161058.html
Copyright © 2020-2023  润新知