Hbase 命令和操作

Hbase 命令


    start-hbase.sh                                                     //启动hbase集群
    hbase-daemon.sh start master                           //启动Hbase master
    hbase-daemons.sh start regionserver                //启动Hbase regionserver

hbase的ha设置
    启动多个master即可。
    zk节点下:  /hbase/backup-master

hbase在hadoop存放文件目录
    /hbase/data/${ns}/${tablename}/${rs}/${f1}/文件名。

hbase shell操作


    $>hbase shell                            //登录shell终端.
    $hbase>help                                // 查看帮助
    $hbase>help    'list_namespace'            //查看特定的命令帮助
    $hbase>list_namespace                    //列出名字空间(数据库)
    $hbase>list_namespace_tables 'defalut'    //列出名字空间(数据库)
    $hbase>create_namespace 'ns1'            //创建名字空间
    $hbase>help 'create'
    $hbase>create 'ns1:t1','f1'                //创建表,指定空间下
    $hbase>put 'ns1:t1','row1','f1:id',100        //插入数据
    $hbase>put 'ns1:t1','row1','f1:name','tom'    //

    $hbase>get 'ns1:t1','row1'                    //查询指定row
    $hbase>scan 'ns1:t1'        

   $hbase>flush 'ns1:t1'        //清理内存数据到磁盘。
    $hbase>count 'ns1:t1'        //统计函数
    $hbase>disable 'ns1:t1'        //删除表之前需要禁用表
    $hbase>drop 'ns1:t1'        //

    $hbase>scan 'hbase:meta'    //查看元数据表
    $hbase>split 'ns1:t1'        //切割表 
    $hbase>split ''  'row5000'              //从row5000切割区域

    $move "ea0a7c0f39baf7afac901a9086878706", "s204,16020,1555393146398"    //移动区域                   ea0a7c0f39baf7afac901a9086878706 //区域名称

        s204,16020,1555393146398  //hbase服务器位置

预先切割
    创建表时,预先对表进行切割。
    切割线是rowkey.
    $hbase>create 'ns1:t2','f1',SPLITS=>['row3000','row6000']


原生扫描(专家)

    1.原生扫描
        $hbase>scan 'ns1:t3',{COLUMN=>'f1',RAW=>true,VERSIONS=>10}        //包含标记了delete的数据
        
    2.删除数据
        $hbase>delete 'nd1:t3','row1','f1:name',148989875645            //删除数据,标记为删除.
                                                                        //小于该删除时间的数据都作废。
    3.TTL
        time to live ,存活时间。
        影响所有的数据,包括没有删除的数据。
        超过该时间,原生扫描也扫不到数据。
        $hbase>create 'ns1:tx' , {NAME=>'f1',TTL=>10,VERSIONS}

    4.KEEP_DELETED_CELLS
        删除key之后,数据是否还保留。
        $hbase>create 'ns1:tx' , {NAME=>'f1',TTL=>10,VERSIONS,KEEP_DELETED_CELLS=>true}

hbase基于hdfs
    相同列族的数据存放在一个文件中。
    [表数据的存储目录结构构成]
    hdfs://s201:8020/hbase/data/${名字空间}/${表名}/${区域名称}/${列族名称}/${文件名}
    [WAL目录结构构成]
    hdfs://s201:8020/hbase/WALs/${区域服务器名称,主机名,端口号,时间戳}/

client端交互过程
    0.hbase集群启动时,master负责分配区域到指定区域服务器。    
    1.联系zk,找出meta表所在rs(regionserver)
        /hbase/meta-region-server

    2.定位row key,找到对应region server
        
    3.缓存信息在本地。

    4.联系RegionServer

    5.HRegionServer负责open HRegion对象,为每个列族创建Store对象,Store包含多个StoreFile实例,
      他们是对HFile的轻量级封装。每个Store还对应了一个MemStore,用于内存存储数据。

猜你喜欢

转载自blog.csdn.net/mao502010435/article/details/89306408