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. MongoDB(二)——安装配置了解

    前边介绍了MongoDB的大概理论知识,这篇来对MongoDB进行一下安装使用,支持安装在windows和linux上,当然了很多其它情况下我们是安装在linux上,由于毕竟server用linux的 ...

  2. 在Service中使用广播接受者

    1.清单文件 <service android:name="com.example.callmethod.MyService"></service> 2.开 ...

  3. 【linux kernel】 中断处理-中断下半部

    欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...

  4. Google - Pagerank

    词条权值的局限. 上一篇blog以信息和概率的角度探讨了词条对于文档的权值. 见blog:http://blog.csdn.net/ice110956/article/details/17243071 ...

  5. ssh登录的时候,根本不给输入密码的机会,直接拒绝,是因为BatchMode的设置

    BatchMode no“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止.当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分 ...

  6. 基于visual Studio2013解决面试题之1404希尔排序

     题目

  7. Managing your Actor Systems

    今天偶然得机会,找到一篇不错得文章,现在分享给大家. 原文:http://www.kotancode.com/2013/02/15/managing-your-actor-systems/ If yo ...

  8. perl lwp编码

    $var= $response->content; $var= $response->decoded_content;

  9. Oracle Data Guard 创建物理Standby数据库

    创建物理备库 机器名                    a1                    a2                    IP:                    192 ...

  10. 十分钟开发一个调用Activity的PhoneGap插件

    在HybridApp开发中,非常多业务我们是没有办法通过HTML5+js实现的,比方调用第三方的包括Activity的jar包,一些必须使用原生代码才干实现的功能,比方复杂的UI的效果,调用通讯相关的 ...