热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HBase(二)之常用命令

文章目录1.其他操作2表的操作2.1.list:列出HBase的所有表2.2create:创建一个表2.3desc:提供了一个表的描述2.

文章目录

  • 1.其他操作
  • 2 表的操作
    • 2.1. list:列出HBase的所有表
    • 2.2 create:创建一个表
    • 2.3 desc:提供了一个表的描述
    • 2.4 disable**:** 禁用表
    • 2.5 enable**:** 启用一个表
    • 2.6. exists**:** 验证表是否存在
    • 2.7. count:统计行数
    • 2.8. drop**:** 从HBase中删除表
    • 2.9 truncate:清空表
    • 2.10 get_splits:获取Region
    • 2.11 alter:修改表
  • 3.数据操作
    • 3.1 scan**:** 扫描并返回表数据
    • 3.2 put
    • 3.3 get
    • 3.4 delete



首先启动master

hbase-daemon.sh start master

使用hbase shell可以进入一个shell命令行界面!出现下图代表成功

HBase shell

image-20200924184043079

1.其他操作

1.查看集群状态

使用status可以查看集群状态,默认为summary,可以选择‘simple’和‘detailed’来查看详情。

hbase(main):001:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 7.0000 average load

2.查看版本

hbase(main):002:0> version
1.2.0-cdh5.14.2, rUnknown, Tue Mar 27 13:31:54 PDT 2018

3.查看操作用户及组信息

hbase(main):004:0> whoami
root (auth:SIMPLE)groups: root

4.查看表操作信息

table_help

5.查看帮助信息

help

6.查看具体命令的帮助

help 'get'

注意引号是必须的!

2 表的操作

2.1. list:列出HBase的所有表

hbase(main):007:0> list
TABLE
abc
cust
customer
emp_basic
4 row(s) in 0.0510 seconds

list后可以使用*等通配符来进行表的过滤!

hbase(main):016:0> list 'c.*'
TABLE
cust
customer
2 row(s) in 0.0060 seconds

2.2 create:创建一个表

创建表时,需要指定表名和列族名,而且至少需要指定一个列族,没有列族的表是没有任何意义的。

创建表时,还可以指定表的属性,表的属性需要指定在列族上!

格式:

create '表名', { NAME => '列族名1', 属性名 => 属性值}, {NAME => '列族名2', 属性名 => 属性值}, …

如果你只需要创建列族,而不需要定义列族属性,那么可以采用以下快捷写法:

create'表名','列族名1' ,'列族名2', …

hbase(main):001:0> create 'student','info'

2.3 desc:提供了一个表的描述

hbase(main):003:0> desc 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CE
LLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_V
ERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0320 seconds

2.4 disable**😗* 禁用表

停用表后,可以防止在对表做一些维护时,客户端依然可以持续写入数据到表。一般在删除表前,必须停用表。

在对表中的列族进行修改时,也需要停用表。

hbase(main):004:0> disable 'student'

disable_all ‘正则表达式’ 可以使用正则来匹配表名。

is_disabled 可以用来判断表是否被停用。

hbase(main):006:0> is_disabled 'student'
true

2.5 enable**😗* 启用一个表

和停用表类似。enable ‘表名’用来启用表,is_enabled ‘表名’用来判断一个表是否被启用。
enable_all ‘正则表达式’可以通过正则来过滤表,启用复合条件的表。

2.6. exists**😗* 验证表是否存在

hbase(main):007:0> exists 'student'
Table student does exist

2.7. count:统计行数

hbase(main):014:0> count 'student'
0 row(s) in 0.0260 seconds=> 0

2.8. drop**😗* 从HBase中删除表

删除表前,需要先disable表,否则会报错。ERROR: Table xxx is enabled. Disable it first.

hbase(main):011:0> drop 'person'

2.9 truncate:清空表

hbase(main):015:0> truncate 'student'
Truncating 'student' table (it may take a while):- Disabling table...- Truncating table...
0 row(s) in 3.4410 seconds

2.10 get_splits:获取Region

获取表所对应的Region个数。每个表在一开始只有一个region,之后记录增多后,region会被自动拆分。

hbase(main):017:0> get_splits 'student'
Total number of splits = 1=> []

2.11 alter:修改表

​ alter命令可以修改表的属性,通常是修改某个列族的属性。

增加:alter ‘表名’,NAME=>‘列簇名’

删除:alter ‘表名’,NAME=>‘列簇名’,METHOD=>‘delete’

hbase(main):021:0> alter 'student','studentno'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 1.9240 seconds

hbase(main):028:0> alter 'student',NAME=>'studentno',METHOD=>'delete'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 1.9420 seconds

3.数据操作

3.1 scan**😗* 扫描并返回表数据

scan命令可以按照rowkey的字典顺序来遍历指定的表的数据。

scan ‘表名’:默认当前表的所有列族。

scan ‘表名’,{COLUMNS=> [‘列族:列名’],…} : 遍历表的指定列

scan 'emp_basic',{COLUMNS=>'emp:name'}

scan ‘表名’, { STARTROW => ‘起始行键’, ENDROW => ‘结束行键’ }:指定rowkey范围。如果不指定,则会从表的开头一直显示到表的结尾。区间为左闭右开。

(由于rowkey并不是整型,所以不会按照数字顺序筛选)

scan 'emp_basic',{STARTROW=>'100',ENDROW=>'200'}

scan ‘表名’, { LIMIT => 行数量}: 指定返回的行的数量

scan 'emp_basic',{LIMIT=>5}

scan ‘表名’, {VERSIONS => 版本数}:返回cell的多个版本

scan 'emp_basic',{VERSIONS=>5}

scan ‘表名’, { TIMERANGE => [最小时间戳, 最大时间戳]}:指定时间戳范围
注意:此区间是一个左闭右开的区间,因此返回的结果包含最小时间戳的记录,但是不包含最大时间戳记录

scan ‘表名’, { RAW => true, VERSIONS => 版本数}

显示原始单元格记录,在Hbase中,被删掉的记录在HBase被删除掉的记录并不会立即从磁盘上清除,而是先被打上墓碑标记,然后等待下次major compaction的时候再被删除掉。注意RAW参数必须和VERSIONS一起使用,但是不能和COLUMNS参数一起使用。

scan ‘表名’, { FILTER => “过滤器”} and|or { FILTER => “过滤器”}: 使用过滤器扫描

3.2 put

put可以新增记录还可以为记录设置属性。

put ‘表名’, ‘行键’, ‘列名’, ‘值’

put ‘表名’, ‘行键’, ‘列名’, ‘值’,时间戳

put ‘表名’, ‘行键’, ‘列名’, ‘值’, { ‘属性名’ => ‘属性值’}

put ‘表名’, ‘行键’, ‘列名’, ‘值’,时间戳, { ‘属性名’ =>‘属性值’}

put 'student','1001','info:name','Nick'put 'student','1001','info:sex','male'put 'student','1001','info:age','18'put 'student','1002','info:name','Janna'put 'student','1002','info:sex','female'put 'student','1002','info:age','20'

3.3 get

get支持scan所支持的大部分属性,如COLUMNS,TIMERANGE,VERSIONS,FILTER

get 'student','1001'

3.4 delete

删除某rowkey的全部数据

deleteall 'student','1001'

删除某rowkey的某一列数据:

delete 'student','1002','info:sex'


推荐阅读
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
author-avatar
anilshen_333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有