2016年09月21日 14:31:53 蘑菇丁 阅读数 4021

进入hbase shell console
    $HBASE_HOME/bin/hbase shell
    如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户
    hbase(main)> whoami
    表的管理
    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'
    权限管理
    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'
    表数据的增删改查
    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'
    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'
    配置管理及节点重启
    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 基本语法相关推荐

  1. HBase基础语法---蔡彤

    CREATE DATABASE IF NOT EXISTS jcgf DEFAULT CHARSET utf8; USE jcgf ; #建学生表 CREATE TABLE IF NOT EXISTS ...

  2. HBase数据结构与基本语法详解

    HBase数据结构与基本语法详解.背景: 阅读新闻 [日期:2019-01-06] 来源:Linux社区 作者:Linux [字体:大 中 小] HBase中的表一般有这样的特点: 1 大:一个表可以 ...

  3. 2021年大数据HBase(十五):HBase的Bulk Load批量加载操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的Bulk Load批量加载操作 一.Bulk L ...

  4. Hbase具体操作(图文并茂且超超全~~~)

    目的: (1)理解 HBase 在 Hadoop 体系结构中的角色. (2)熟练使用 HBase 操作常用的 Shell 命令. 目标: (1)熟悉hbase相关操作,掌握建表.修改表.查表.删除表等 ...

  5. HBase,phoenix

    HBase,一个NoSQL数据库,可存储大量非关系型数据. HBase,可以用HBase shell进行操作,也可以用HBase Java api进行操作.HBase虽然是一个数据库,但是它的查询语句 ...

  6. hbase基础命令学习

    文章目录 HBASE 入门 写在前面 一.安装与启动 二.基本命令 环境信息和权限分配 表的创建和删除以及查看 行的增删改查 列簇的增删改 查询 高级查询 结语 感谢 HBASE 入门 写在前面 大数 ...

  7. Phoenix查询hbase

    https://www.cnblogs.com/linbingdong/p/5832112.html  这个很全看这个HBase,一个NoSQL数据库,可存储大量非关系型数据. HBase,可以用HB ...

  8. phoenix php,Python实现连接phoenix的实例

    这篇文章主要介绍了Python连接phoenix的方法,简单说明了phoenix的概念.功能并结合具体实例形式分析了Python连接phoenix的相关操作技巧,需要的朋友可以参考下 本文实例讲述了P ...

  9. 大数据学习笔记:Hadoop生态系统

    文章目录 一.Hadoop是什么 二.Hadoop生态系统图 三.Hadoop生态圈常用组件 (一)Hadoop (二)HDFS (三)MapReduce (四)Hive (五)Hbase (六)Zo ...

最新文章

  1. IT规划的企业应用实践(6)研究背景 之 企业信息化建设的诉求
  2. 软件测试培训怎么学?有没有发展前景?
  3. 出租房的网络环境研究
  4. 统计语言模型(Statistical Language Model)
  5. php怎样连接上数据库服务器,php怎样连接数据库
  6. Android 系统性能优化(42)---Android代码内存优化建议-Android资源篇
  7. java--tomcat
  8. python之yield
  9. 解析AMD品牌的中国元素
  10. 工作默认加班,不续签默认不加班
  11. 计算机的静态存储区在哪里,静态随机访问存储器
  12. JAVA生成带LOGO的二维码
  13. uview中button细边框去除问题
  14. 爱乐乐iLELE®益生菌新品上市由妈咪爱研究中心出品
  15. 杰里最新的 授权工具版本【篇】
  16. linux qt自带例子无法,出现Qt_5未在文件libQt5Widgets.so.5中定义导致软件无法使用的解决...
  17. [洛谷]P1914小书童——凯撒密码
  18. php中的mysql1366错误_MySQL 错误 1366:1366 Incorrect integer value
  19. 第2章-系统控制原理 -> 线性系统理论
  20. 工作小技能:微信双开

热门文章

  1. 微博提现验证码服务器繁忙,为什么我的新浪BLOG登录不了.而显示系统繁忙或者验证码错误.为? 爱问知识人...
  2. 如何解决报错信息:Error in UseMethod(“filter_”) 在使用dplyr包的filter() 时候
  3. mysql安装常见问题(系统找不到指定的文件、发生系统错误 1067 进程意外终止)
  4. 基于HTML5+CSS+JacaScript和Java实现的校园校友APP前后台实现
  5. ubuntu系统备份方法
  6. 全真互联不同于元宇宙,五大技术大公开
  7. 在职高学计算机咋考大专,职高怎么考大专
  8. HDU 3342 Legal or Not
  9. Eclipse报错:java.lang.ClassNotFoundException: Contex
  10. 【vue】解决使用vue,导致jq插件失效的问题