1. 进入hbase shell console

    $HBASE_HOME/bin/hbase shell

    假设有kerberos认证,须要事先使用对应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入能够使用whoami命令可查看当前用户

    hbase(main)>
    whoami
  2. 表的管理

    1)查看有哪些表

    hbase(main)>
    list

    2)创建表

    #
    语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
    #
    比如:创建表t1,有两个family name:f1。f2,且版本号数均为2
    hbase(main)>
    create
    't1',{NAME
    =>
    'f1',
    VERSIONS => 2},{NAME =>
    'f2',
    VERSIONS => 2}

    3)删除表

    分两步:首先disable。然后drop

    比如:删除表t1

    hbase(main)>
    disable
    't1'
    hbase(main)>
    drop
    't1'

    4)查看表的结构

    #
    语法:describe <table>
    #
    比如:查看表t1的结构
    hbase(main)>
    describe
    't1'

    5)改动表结构

    改动表结构必须先disable

    #
    语法:alter 't1', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}
    #
    比如:改动表test1的cf的TTL为180天
    hbase(main)>
    disable
    'test1'
    hbase(main)>
    alter
    'test1',{NAME=>'body',TTL=>'15552000'},{NAME=>'meta',
    TTL=>
    '15552000'}
    hbase(main)>
    enable 'test1'
  3. 权限管理

    1)分配权限

    #
    语法 : grant <user> <permissions> <table> <column family> <column qualifier> 參数后面用逗号分隔
    #
    权限用五个字母表示: "RWXCA".
    #
    READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
    #
    比如,给用户‘test'分配对表t1有读写的权限,
    hbase(main)>
    grant
    'test','RW','t1'

    2)查看权限

    #
    语法:user_permission <table>
    #
    比如,查看表t1的权限列表
    hbase(main)>
    user_permission
    't1'

    3)收回权限

    #
    与分配权限类似。语法:revoke <user> <table> <column family> <column qualifier>
    #
    比如。收回test用户在表t1上的权限
    hbase(main)>
    revoke
    'test','t1'
  4. 表数据的增删改查

    1)加入数据

    #
    语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
    #
    比如:给表t1的加入一行记录:rowkey是rowkey001,family name:f1,column name:col1。value:value01,timestamp:系统默认
    hbase(main)>
    put
    't1','rowkey001','f1:col1','value01'
    使用方法比較单一。

    2)查询数据

    a)查询某行记录

    #
    语法:get <table>,<rowkey>,[<family:column>,....]
    #
    比如:查询表t1,rowkey001中的f1下的col1的值
    hbase(main)>
    get
    't1','rowkey001',
    'f1:col1'
    #
    或者:
    hbase(main)>
    get
    't1','rowkey001',
    {COLUMN=>
    'f1:col1'}
    #
    查询表t1。rowke002中的f1下的全部列值
    hbase(main)>
    get
    't1','rowkey001'

    b)扫描表

    #
    语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
    #
    另外,还能够加入STARTROW、TIMERANGE和FITLER等高级功能
    #
    比如:扫描表t1的前5条数据
    hbase(main)>
    scan
    't1',{LIMIT=>5}

    c)查询表中的数据行数

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

    3)删除数据

    a )删除行中的某个列值

    #
    语法:delete <table>, <rowkey>,  <family:column> , <timestamp>,必须指定列名
    #
    比如:删除表t1。rowkey001中的f1:col1的数据
    hbase(main)>
    delete
    't1','rowkey001','f1:col1'

    注:将删除改行f1:col1列全部版本号的数据

    b )删除行

    #
    语法:deleteall <table>, <rowkey>,  <family:column> , <timestamp>,能够不指定列名,删除整行数据
    #
    比如:删除表t1,rowk001的数据
    hbase(main)>
    deleteall
    't1','rowkey001'

    c)删除表中的全部数据

    #
    语法: truncate <table>
    #
    其详细过程是:disable table -> drop table -> create table
    #
    比如:删除表t1的全部数据
    hbase(main)>
    truncate
    't1'
  5. Region管理

    1)移动region

    #
    语法:move 'encodeRegionName', 'ServerName'
    #
    encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表
    #
    演示样例
    hbase(main)>move
    '4343995a58be8e5bbc739af1e91cd72d',
    'db-41.xxx.xxx.org,60020,1390274516739'

    2)开启/关闭region

    #
    语法:balance_switch true|false
    hbase(main)>
    balance_switch

    3)手动split

    #
    语法:split 'regionName', 'splitKey'

    4)手动触发major compaction

    #语法:
    #Compact
    all regions in a table:
    #hbase>
    major_compact 't1'
    #Compact
    an entire region:
    #hbase>
    major_compact 'r1'
    #Compact
    a single column family within a region:
    #hbase>
    major_compact 'r1', 'c1'
    #Compact
    a single column family within a table:
    #hbase>
    major_compact 't1', 'c1'
  6. 配置管理及节点重新启动

    1)改动hdfs配置

    hdfs配置位置:/etc/hadoop/conf

    #
    同步hdfs配置
    cat /home/hadoop/slaves|xargs -i
    -t
    scp /etc/hadoop/conf/hdfs-site.xml
    hadoop@{}:
    /etc/hadoop/conf/hdfs-site.xml
    #关闭:
    cat /home/hadoop/slaves|xargs -i
    -t
    ssh hadoop@{}
    "sudo
    /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop datanode"
    #启动:
    cat /home/hadoop/slaves|xargs -i
    -t
    ssh hadoop@{}
    "sudo
    /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start datanode"

    2)改动hbase配置

    hbase配置位置:

    #
    同步hbase配置
    cat /home/hadoop/hbase/conf/regionservers|xargs -i
    -t
    scp /home/hadoop/hbase/conf/hbase-site.xml
    hadoop@{}:
    /home/hadoop/hbase/conf/hbase-site.xml
     
    #
    graceful重新启动
    cd ~/hbase
    bin/graceful_stop.sh
    --restart --reload --debug inspurXXX.xxx.xxx.org

HBase总结(二十)HBase经常使用shell命令具体说明的更多相关文章

  1. Hbase(二)hbase建表

    一.建表高级属性 下面几个 shell 命令在 hbase 操作中可以起到很到的作用,且主要体现在建表的过程中,看 下面几个 create 属性 1.bloomfilter 布隆过滤器 默认是 NON ...

  2. HBase之二:Hbase优化

    1.    预先分区 默认情况下,在创建 HBase 表的时候会自动创建一个 Region 分区,当导入数据的时候,所有的 HBase 客户端都向这一个 Region 写数据,直到这个 Region  ...

  3. Android源码分析(十六)----adb shell 命令进行OTA升级

    一: 进入shell命令界面 adb shell 二:创建目录/cache/recovery mkdir /cache/recovery 如果系统中已有此目录,则会提示已存在. 三: 修改文件夹权限 ...

  4. 【HBase】二、HBase实现原理及系统架构

      整个Hadoop生态中大量使用了master-slave的主从式架构,如同HDFS中的namenode和datanode,MapReduce中的JobTracker和TaskTracker,YAR ...

  5. Linux系列教程(二十)——Linux的shell概述以及如何执行脚本

    从这篇博客开始,我们将进入Linux的shell脚本的学习,这对于Linux学习爱好者而言是特别重要的一节,也是特别有意思的一节,shell 脚本就像我们知道的Java,php类似的编程语言一样,通过 ...

  6. 二十四种设计模式:命令模式(Command Pattern)

    命令模式(Command Pattern) 介绍将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可取消的操作. 示例有一个Message实体类,某个 ...

  7. 二十四、MySQL ALTER命令

    MySQL ALTER命令 当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本章教程前让我们先创建一张表,表名为:testalter_tbl. root@ho ...

  8. linux系列(二十四):du命令

    1.命令格式 du [选项][文件] 2.命令功能 显示每个文件和目录的磁盘使用空间. 3.命令参数 -a或-all 显示目录中个别文件的大小. -b或-bytes 显示目录或文件大小时,以byte为 ...

  9. 二十九、Helm常用命令

    # 创建一个chart范例 helm create HELM-NAME # 检查chart语法 helm lint ./HELM-NAME # 使用默认chart部署到k8s helm install ...

  10. linux 8 -- 管道组合Shell命令进行系统管理

    二十. 通过管道组合Shell命令获取系统运行数据: 1.  输出当前系统中占用内存最多的5条命令:     #1) 通过ps命令列出当前主机正在运行的所有进程.     #2) 按照第五个字段基于数 ...

随机推荐

  1. hdu 4940 Destroy Transportation system( 无源汇上下界网络流的可行流推断 )

    题意:有n个点和m条有向边构成的网络.每条边有两个花费: d:毁坏这条边的花费 b:重建一条双向边的花费 寻找这样两个点集,使得点集s到点集t满足 毁坏全部S到T的路径的费用和 > 毁坏全部T到 ...

  2. Route@书写规则的总结

    路由书写规则的总结 概念:Routing System由一组路由组成,每一个路由规则可以匹配一种类型的URL,在请求过来的时候,Ruting ystem 就用它来处理这个URL,路由的任务就是匹配UR ...

  3. boost操作xml 5分钟官方教程

    Five Minute Tutorial This tutorial uses XML. Note that the library is not specifically bound to XML, ...

  4. unity3d游戏开发猜想——当程序猿老去

    程序猿将代码注入生命去打造互联网的浪潮之巅.当有一天他们老了.会走向那里,会做些什么? 4.4.0" alt="" style="border:0px; ver ...

  5. java假设模拟请求重新启动路由器(网络爬虫经常使用),还有java怎样下载图片

    我们假设在公司或家里使用网络爬虫去抓取自己索要的一些数据的时候,经常对方的站点有defence机制,会给你的http请求返回500错误,仅仅要是同样IP就请求不到数据,这时候我们仅仅能去重新启动路由器 ...

  6. 用lambda表达式声明委托

    首先来分享一段代码: Func<int, int, int> addMethod = (int x, int y) => (x + y); 熟悉的人肯定知道这句话是什么意思,可是不熟 ...

  7. axure母版(模板)区域介绍

    axure的模板区域是非常重要的一个功能,网站的头部.尾部部分等很多页面同时用到的内容,都可以使用母版,因为在母版中只需要修改一次,就可以实现所有的页面更新,可以大大的加速原型的制作速度.需要重复理解 ...

  8. Fibinary Numbers

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30506#problem/V 题意:从右向左,每一个位数,分别表示一个fibonacci数 ...

  9. Storm流计算之项目篇(Storm+Kafka+HBase+Highcharts+JQuery,含3个完整实际项目)

    1.1.课程的背景 Storm是什么? 为什么学习Storm? Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop. 随着越来越多的场景对Hadoop的MapRed ...

  10. 微信公 众平台开发,用于个人技术交流,有兴趣的加QQ群432921500

    微信公 众平台开发,用于个人技术交流,有兴趣的加QQ群432921500