首页 > 其他分享 >HBase学习的第二天--hbase的架构和基础命令

HBase学习的第二天--hbase的架构和基础命令

时间:2024-08-13 15:38:47浏览次数:12  
标签:5.3 -- 列族名 列族 disable 表名 HBase hbase

  • 接着昨天的简单了解继续学习

五、hbase shell

命名 描述 语法
help ‘命名名’ 查看命令的使用描述 help ‘命令名’
whoami 我是谁 whoami
version 返回hbase版本信息 version
status 返回hbase集群的状态信息 status
table_help 查看如何操作表 table_help
create 创建表 create ‘表名’, ‘列族名1’, ‘列族名2’, ‘列族名N’
alter 修改列族 添加一个列族:alter ‘表名’, ‘列族名’
删除列族:alter ‘表名’,
describe 显示表相关的详细信息 describe ‘表名’
list 列出hbase中存在的所有表 list
exists 测试表是否存在 exists ‘表名’
put 添加或修改的表的值 put ‘表名’, ‘行键’, ‘列族名’, ‘列值’
put ‘表名’, ‘行键’, ‘列族名:列名’, ‘列值’
scan 通过对表的扫描来获取对用的值 scan ‘表名’
扫描某个列族: scan ‘表名’, {COLUMN=>‘列族名’}
扫描某个列族的某个列: scan ‘表名’, {COLUMN=>‘列族名:列名’}
查询同一个列族的多个列: scan ‘表名’,
get 获取行或单元(cell)的值 get ‘表名’, ‘行键’
get ‘表名’, ‘行键’, ‘列族名’
count 统计表中行的数量 count ‘表名’
incr 增加指定表行或列的值 incr ‘表名’, ‘行键’, ‘列族:列名’, 步长值
get_counter 获取计数器 get_counter ‘表名’, ‘行键’, ‘列族:列名’
delete 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值) 删除列族的某个列: delete ‘表名’, ‘行键’, ‘列族名:列名’
deleteall 删除指定行的所有元素值 deleteall ‘表名’, ‘行键’
truncate 重新创建指定表 truncate ‘表名’
enable 使表有效 enable ‘表名’
is_enabled 是否启用 is_enabled ‘表名’
disable 使表无效 disable ‘表名’
is_disabled 是否无效 is_disabled ‘表名’
drop 删除表 drop的表必须是disable的
disable ‘表名’
drop ‘表名’
shutdown 关闭hbase集群(与exit不同)
tools 列出hbase所支持的工具
exit 退出hbase shell

HBase Shell 是官方提供的一组命令,用于操作HBase。如果配置了HBase的环境变量了,就可以知己在命令行中输入hbase shell 命令进入命令行。

hbase shell

image-20220608225844374

在hbase中如果输入错误,按住ctrl+退格 才能删除(新版本不用)

5.1 help命令

可以通过 help '命名名称'来查看命令行的具体使用,包括命令的作用和用法。
通过help ‘hbase’ 命名来查看hbase shell 支持的所有命令,hbase将命令进行分组,其中ddl、dml使用较多。

image-20220608230009607

help 'list'

image-20220608230050274

5.2 general 类

5.2.1 显示集群状态status

image-20220608230310182

5.2.2 查询数据库版本version

image-20220608230440754

5.2.3 显示当前用户与组 whoami

image-20220608230519490

5.2.4 查看操作表的命令table_help

image-20220608230553346

5.2.5 退出HBase Shell exit

image-20220608230623889

5.3 DDL相关

5.3.1. 创建表create

注意:创建表时只需要指定列族名称,不需要指定列名。

# 语法
create '表名', {NAME => '列族名1'}, {NAME => '列族名2'}, {NAME => '列族名3'}
# 此种方式是上上面的简写方式,使用上面方式可以为列族指定更多的属性,如VERSIONS、TTL、BLOCKCACHE、CONFIGURATION等属性
create '表名', '列族名1', '列族名2', '列族名3'

create '表名', {NAME => '列族名1', VERSIONS => 版本号, TTL => 过期时间, BLOCKCACHE => true}


# 示例
create 'tbl_user', 'info', 'detail'
create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true},{NAME => 'f2',..}

image-20220608230826425

5.3.2 修改(添加、删除)表结构Schema alter

5.3.2.1 添加一个列簇
# 语法 
alter '表名', '列族名'

# 示例
alter 'tbl_user', 'address'

image-20220608230938763

5.3.2.2 删除一个列簇
# 语法 
alter '表名', {NAME=> '列族名', METHOD=> 'delete'}

alter 't1',{NAME => 'cf2', METHOD => 'delete'}
# 示例
alter 'tbl_user', {NAME=> 'address', METHOD=> 'delete'}

image-20220608231027899

5.3.2.3 修改列族的属性

可以修改列族的VERSIONS、IN_MEMORY

# 修改f1列族的版本为5
alter 't1', NAME => 'f1', VERSIONS => 5

# 修改多个列族,修改f2为内存,版本号为5
alter 't1', 'f1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5}

# 也可以修改table-scope属性,例如MAX_FILESIZE, READONLY,MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH等。
# 例如,修改region的最大大小为128MB:
alter 't1', MAX_FILESIZE => '134217728'

5.3.3 获取表的描述describe

# 语法 
describe '表名'

# 示例
describe 'tbl_user'

image-20220608231308673

5.3.4 列举所有表list

image-20220608231334575

5.3.5 表是否存在exists

# 语法 
exists '表名'

# 示例
exists 'tbl_user'

image-20220608231431898

5.3.6 启用表enable和禁用表disable

通过enable和disable来启用/禁用这个表,相应的可以通过is_enabled和is_disabled来检查表是否被禁用。

# 语法
enable '表名'
is_enabled '表名'

disable '表名'
is_disabled '表名'

# 示例
disable 'tbl_user'
is_disabled 'tbl_user'

enable 'tbl_user'
is_enabled 'tbl_user'

5.3.7 禁用满足正则表达式的所有表disable_all

  • .匹配除“\n”和"\r"之外的任何单个字符
  • *匹配前面的子表达式任意次
# 匹配以t开头的表名
disable_all 't.*'
# 匹配指定命名空间ns下的以t开头的所有表
disable_all 'ns:t.*'
# 匹配ns命名空间下的所有表
disable_all 'ns:.*'

5.3.8 启用满足正则表达式的所有表enable_all

enable_all 't.*'
enable_all 'ns:t.*'
enable_all 'ns:.*'

5.3.9 删除表drop

需要先禁用表,然后再删除表,启用的表是不允许删除的

# 语法
disable '表名'
drop '表名'

# 示例
disable 'tbl_user'
drop 'tbl_user'

直接删除报错:

image-20220608231641417

先禁用后删除

image-20220608231726087

5.3.10 删除满足正则表达式的所有表drop_all

drop_all 't.*'
drop_all 'ns:t.*'
drop_all 'ns:.*'

5.3.11 获取某个表赋值给一个变量 get_table

通过 var = get_table ‘表名’ 赋值给一个变量对象,然后对象.来调用,就像面向对象编程一样,通过对象.方法来调用,这种方式在操作某个表时就不必每次列举表名了。

image-20220608232059349

5.3.12 获取rowKey所在的区 locate_region

locate_region '表名', '行键'

5.3.13 显示hbase所支持的所有过滤器show_filters

过滤器用于get和scan命令中作为筛选数据的条件,类型关系型数据库中的where的作用

image-20220608232227422

标签:5.3,--,列族名,列族,disable,表名,HBase,hbase
From: https://www.cnblogs.com/shmil/p/18357028

相关文章

  • 猪脸识别、自动投喂!Apache DolphinScheduler还能做这些?
    数字化转型提速中!传统农牧食品行业也寻求搭上数字化转型的快车,通过物联网、大数据、人工智能等现代信息技术,实现生产、加工、流通等环节的智能化和自动化,提高生产效率、优化资源配置、提升产品质量,并满足消费者对食品安全和可追溯性的需求。在数字化浪潮的推动下,铁骑力士集团作......
  • 随机森林分类器(Random Forest Classifier)
    随机森林分类器(RandomForestClassifier,又称为“随机森林”)是一种常用的机器学习算法,它是基于决策树的一种集成学习方法,是一种集成算法(EnsembleLearning),它属于Bagging类型,通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能。......
  • 【YashanDB数据库】YashanDB如何回收表空间
    确认表空间高水位线,是否有可回收空间。selecta.tablespace_name,a.high_water_mark,b.user_bytes,b.total_bytesfrom(SELECTtablespace_name,max(header_block+blocks)*8192AShigh_water_markFROMdba_segmentsWHEREtablespace_name='USERS'GROUPBYtablespace_n......
  • 教程:搭建一个我的世界模组服务器(Linux)
    需要什么?一点点Linux基础一个服务器一个公网IP(也可以去搜索内网穿透)安装Java你的电脑和服务器都需要安装java,windows直接去官网下载即可。Linux的话sudoapt-getinstalldefault-jdk(测试平台为Debian)其他linux发行版的话安装也很简单,就不说了。下载Forge百度去搜......
  • 小白学习微信小程序的图片处理和预览技巧
    微信小程序的图片处理和预览技巧可以通过使用微信提供的API和组件来实现。在本文中,我们将详细介绍以下几个方面的内容:图片的上传和下载:包括用户上传图片和从服务器上下载图片的方法。图片的编辑和处理:包括图片的裁剪、旋转、缩放等操作。图片的预览和查看:包括在小程序中展示图......
  • To create a new mock, the existing static mock registration must be deregistered
    1、异常提示:Tocreateanewmock,theexistingstaticmockregistrationmustbederegistered  2、原因分析由提示信息可知,静态模拟已经注册过了,再次注册时必须先将之前的撤销。所以我们要撤销之前的注册信息,再执行。这里提供另一种方法,将模拟静态的方法......
  • 搬砖人2024年的智能工作伙伴 —— 4款思维导图软件种草集!
    幕布思维导图这玩意儿特别厉害,成了很多学生学习的好帮手,在学习中经常觉得信息太多太乱,不好理清楚。这时候用幕布思维导图,我们可以把那些复杂的知识点整理得有条有理。每个主题、每个小点都清清楚楚,学习的时候一眼就能看出重点。这种一看就明白的学习法,不仅让我们学得更快,还能让......
  • PDF编辑不再愁!3个超实用技巧,让你的文档秒变高大上
    在数字化时代,PDF文件因为能在不同设备上保持格式不变,而且不容易被修改,成了我们学习和工作的好帮手。但是,要编辑PDF文件时,我们可能会遇到一些难题。别急,今天我要分享一些超实用的工具,让你的文件用PDF编辑起来既简单又高效。技巧一:OCR技术让图片转文字变得简单福昕全能PDF工具......
  • 分层运维自动化监控
    分层运维自动化监控背景    架构设计的分层架构思想是一种将软件系统划分为多个层次的设计方法,每个层次都有其特定的职责和功能,通过层次之间的接口进行通信,以实现系统的整体目标。这种设计思想的核心在于将复杂的系统分解为一系列相对独立的子问题,并通过各层的协作来提供整......
  • getchar和putchar
    在接受单个字符和打印单个字符时,可以使用getchar和putchar。getchar()getchar()函数返回⽤⼾从键盘输⼊的⼀个字符,使⽤时不带有任何参数,等同于使⽤scanf()⽅法读取⼀个字符,它的原型定义在头文件<stdio.h>。getchar()不会忽略起⾸的空⽩字符,总是返回当前读取的第⼀个字符......