Hbase基本操作

news2024/9/22 13:22:13

目录

HBASE 基本操作

hbase shell:进入hbase shell环境

status命令:查看集群状态

version:查看版本信息

create:创建表

drop 删除表

list:查看所有表

desc :查看表结构

exists :查看表是否存在

表的启动和禁用

列簇的增删改

插入数据

删除第2行的数据

Hbase是Big Table的开源java版本,是建立在HDFS之上,提供高可靠性,高性能,列存储,可伸缩,实时读写的NoSql的数据库系统。

 

Hbase仅能通过逐渐(row key)和主键的range来检索数据,仅支持单行事务

Hbase主要用来存储结构化和半结构化的松散数据

Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务,从技术上来说,Hbase更像是一个【数据存储】而不是数据库。

Hbase中支持的数据类型“byte[ ]”

hbase和hadoop一样,Hbase目标主要依靠横向扩展,通过不断增阿基廉价的商用服务器,来增加存储和处理能力,例如,把集群从10个节点扩展到20个节点,存储能力和处理能力都会加倍。

Hbase中的表一般有这样的特点:

        大:一个表可以有上十亿行,上百万列

        面向列:面向列(族)的存储和权限控制,列(族)独立检索

        稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏

HBASE 基本操作

hbase shell:进入hbase shell环境

[hadoop@vm2 ~]$ hbase shell
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.4.8, rf844d09157d9dce6c54fcd53975b7a45865ee9ac, Wed Oct 27 08:48:57 PDT 2021
Took 0.0016 seconds 

status命令:查看集群状态

hbase:001:0> status
1 active master, 1 backup masters, 3 servers, 0 dead, 0.6667 average load
Took 0.7874 seconds    

version:查看版本信息

hbase:002:0> version
2.4.8, rf844d09157d9dce6c54fcd53975b7a45865ee9ac, Wed Oct 27 08:48:57 PDT 2021
Took 0.0018 seconds    

create:创建表

命令格式1:create ‘表名’,‘列簇名1’,‘列簇名2’…

Hbase创建表的时候不需要创建所有列簇,对于空(null)的列,并不占用存储空间,因此表可以设计的非常稀疏

# 创建一个名为test的表,包含 hbaseinfo 和 specialinfo 两个列簇
hbase:004:0> create 'test','hbaseinfo','specialinfo'
Created table test
Took 1.3269 seconds                                                                                                               
=> Hbase::Table - test

drop 删除表

# 删除表之前需要先禁用表
hbase:005:0> disable 'test'
Took 1.0000 seconds                                                                       # 删除表                                        
hbase:006:0> drop 'test'
Took 0.7162 seconds  

list:查看所有表

hbase:008:0> list
TABLE                                                                                                                             
test                                                                                                                              
1 row(s)
Took 0.0131 seconds                                                                                                               
=> ["test"]

desc :查看表结构

hbase:010:0> desc 'test'
Table test is ENABLED                                                                                                             
test                                                                                                                              
COLUMN FAMILIES DESCRIPTION                                                                                                       
{NAME => 'hbaseinfo', BLOOMFILTER => 'ROW', IN_MEMORY => 'false', VERSIONS => '1', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCOD
ING => 'NONE', COMPRESSION => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATI
ON_SCOPE => '0'}                                                                                                                  

{NAME => 'specialinfo', BLOOMFILTER => 'ROW', IN_MEMORY => 'false', VERSIONS => '1', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENC
ODING => 'NONE', COMPRESSION => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICA
TION_SCOPE => '0'}                                                                                                                

2 row(s)
Quota is disabled
Took 0.1308 seconds    

exists :查看表是否存在

hbase:011:0> exists 'test'
Table test does exist                                        
Took 0.0172 seconds                                                             
=> true

表的启动和禁用

# 禁用表
hbase:013:0> disable 'test'
Took 0.6758 seconds                                                                       # 检查表是否被禁用                                        
hbase:014:0> is_disabled 'test'
true                                                                                                                              
Took 0.0222 seconds                                                                                                               
=> true
# 启用表
hbase:015:0> enable 'test'
Took 0.6949 seconds                                                                       # 检查表是否被启用                                        
hbase:016:0> is_enabled 'test'
true                                                                                                                              
Took 0.0168 seconds                                                                                                               
=> true

列簇的增删改

# 添加列簇
hbase:018:0> alter 'test','name'
Updating all regions with the new schema...
1/1 regions updated.
Done.
Took 2.0527 seconds   

# 删除列簇                                        
hbase:019:0> alter 'test',{NAME=>'specialinfo',METHOD=>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
Took 1.8760 seconds     

# 更改列簇存储版本的限制
# 默认情况下列簇只储存一个版本数据,如果需要存储多个版本数据,需要修改列簇属性
hbase:021:0> alter 'test',{NAME=>'hbaseinfo',VERSIONS=>3}
Updating all regions with the new schema...
1/1 regions updated.
Done.
Took 1.8611 seconds     

插入数据

命令格式:put '表名',‘行键','列簇名','列名','值',[时间戳]

hbase:022:0> put 'test','1','hbaseinfo:name','wang'
Took 0.2073 seconds                                                                                                               
hbase:023:0> put 'test','1','hbaseinfo:age','20'
Took 0.0137 seconds                                                                                                               
hbase:024:0> put 'test','1','hbaseinfo:birthday','2000-01-01'
Took 0.0106 seconds                                                                                                               
hbase:025:0> put 'test','1','hbaseinfo:location','Boston'
Took 0.0191 seconds        

获取指定行,指定行中的列簇,列的信息

# 获取第1行所有列的数据信息
hbase:026:0> get 'test','1'
COLUMN                            CELL                                                                                            
 hbaseinfo:age                    timestamp=2023-04-13T02:49:42.913, value=20                                                     
 hbaseinfo:birthday               timestamp=2023-04-13T02:50:07.241, value=2000-01-01                                             
 hbaseinfo:location               timestamp=2023-04-13T02:52:06.107, value=Boston                                                 
 hbaseinfo:name                   timestamp=2023-04-13T02:49:11.233, value=wang                                                   
1 row(s)
Took 0.0808 seconds    

# 获取第1行 hbaseinfo 列族里的数据信息
hbase:027:0> get 'test','1','hbaseinfo'
COLUMN                            CELL                                                                                            
 hbaseinfo:age                    timestamp=2023-04-13T02:49:42.913, value=20                                                     
 hbaseinfo:birthday               timestamp=2023-04-13T02:50:07.241, value=2000-01-01                                             
 hbaseinfo:location               timestamp=2023-04-13T02:52:06.107, value=Boston                                                 
 hbaseinfo:name                   timestamp=2023-04-13T02:49:11.233, value=wang                                                   
1 row(s)
Took 0.0422 seconds  

# 获取第1行中,hbaseinfo中的name列数据。
hbase:028:0> get 'test','1','hbaseinfo:name'
COLUMN                            CELL                                                                                            
 hbaseinfo:name                   timestamp=2023-04-13T02:49:11.233, value=wang                                                   
1 row(s)
Took 0.0215 seconds    

删除第2行的数据

delete 'test','2' 

删除第2行指定列的数据

delete 'test','2','hbaseinfo:name'

命名空间

# 创建命名空间
hbase:029:0> create_namespace 'wang'
Took 0.4548 seconds                                                                       # 列出所有命名空间                                        
hbase:030:0> list_namespace
NAMESPACE                                                                                                                         
default                                                                                                                           
hbase                                                                                                                             
wang                                                                                                                              
3 row(s)
Took 0.0567 seconds                                                                       # 在指定命名空间下面创建表                                        
hbase:031:0> create 'wang:company','abt'
Created table wang:company
Took 1.1369 seconds                                                                                                               
=> Hbase::Table - wang:company

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/447581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式数据一致性解决方案推理过程

redis是一个极轻量级的进程,单机单线程单进程。 使用redis很容易实现分布式锁:setnx,同一个key,谁设置成功了,谁就抢到了锁,所以就产生了多锁问题。 假设客户端1抢到了锁,redis挂了&#xff0c…

Docker下载、安装

安装docker前,需要安装WSL Linux 内核、Hyper-V Hyper-V 首先确认系统是否安装:Hyper-V 如果没有则安装: pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in (findstr /i . h…

java中的泛型

1.2 泛型的引入 在Java中,我们在声明方法时,当在完成方法功能时如果有未知的数据需要参与,这些未知的数据需要在调用方法时才能确定,那么我们把这样的数据通过形参表示。在方法体中,用这个形参名来代表那个未知的数据…

如何在四维轻云地理空间数据管理云平台中搭建场景?

《四维轻云》是一款轻量化的地理空间数据管理云平台,支持地理空间数据的在线管理、编辑以及分享。平台有项目管理、数据上传、场景搭建、发布分享、素材库等功能模块,支持多用户在线协作管理,实现了轻量化、便捷化的空间数据应用。 目前&…

< 前端性能优化: 资源加载优化 >

文章目录 👉 前言👉 一、路由懒加载> 实现代码> 处理前后各文件大小情况 👉 二、组件懒加载> 实现代码> 适用场景 👉 三、骨架屏优化白屏时长👉 四、JavaScript 的6种加载方式1. 正常模式2. async 模式3. …

云端上的结题报告——凌恩智能交付系统

做组学分析的小伙伴不难发现,在拿到测序分析结果后,经常会需要进行调整,比如:配色不符合自己审美、分组需要重新设置、重复性差需要剔除样本等,面对重新分析或改图的情况,自学生信费时费力,找公…

ClickHouse数据一致性

目录 1 准备测试表和数据2 手动OPTIMIZE(不推荐)3 通过 Group by 去重4 通过 FINAL 查询4.1 老版本测试4.2 新版本测试 1 准备测试表和数据 查询 CK 手册发现,即便对数据一致性支持最好的 Mergetree,也只是保证最终一致性: 我们在使用 Repl…

条码控件Aspose.BarCode入门教程(7):如何在Java 中的 GS1-128 条码生成器

Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API支持流行文件格式处理&am…

C语言—深度剖析数据在内存中的存储

深度剖析数据在内存中的存储 数据类型介绍类型的基本归类整形在内存中的存储大小端介绍整形在内存中的存储的相关练习浮点型在内存中的存储浮点型在内存中的存储相关介绍 数据类型介绍 内置类型(C语言本身就具有的类型): char //字符…

linux_时序竞态-pause函数-sigsuspend函数-异步I/O-可重入函数-不可重入函数

接上一篇:linux_信号捕捉-signal函数-sigaction函数-sigaction结构体 今天来分享时序竞态的知识,关于时序竞态的问题,肯定会和cpu有关,也会学习两个函数,pause函数,sigsuspend函数, 也会分享什么…

教你轻松申请Azure OpenAI

Azure OpenAI 和 OpenAI 官方提供的服务基本是一致的,但是目前前者还是处于预览版的状态,一些功能还没有完全开放。 优点: 不受地域限制,国内可以直接调用。可以自己上传训练数据进行训练(据说很贵)。Azu…

【原理图专题】Cadence如何导出智能PDF

原理图导出PDF只会使用打印?打印后没有书签还需要手动建立多页面的书签? 其实Cadence支持导出智能pdf,不仅能够在pdf上直接看到料件的各种参数,还可以直接点击连页符跳转到对应的页面和网络上,并且还能根据页面自动建立完整的书签,方便查找。 最终能生成如下所示的页面…

建筑负荷需求响应的介绍

可再生能源发展及电网用电平衡现状 近些年,我国城市建筑的电网供给和需求存在严重的不平衡问题,特别是当受建筑空调季节性负荷的影响时。一方面夏季及冬季电力负荷短缺,而另外一方面全年仍然存在着发电设备过剩、运行小时数不足等问题。以加州为例,夏季高峰用电中 50%左右…

一个对付小孩便秘的指南,让麻麻不再当催屎员

便秘在儿童中很常见。多达30%的儿童患有便秘。据估计,它占所有儿科医生的3%-5%。便秘通常包括排便困难或排便频率降低。正常排便的频率和特征在不同的儿童时期是不同的,因此没有单一的正常定义。●在足月新生儿中,第一次排便通常发生在出生后…

Linux 下 安装多个mysql8.0

1:下载mysql wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar 2:解压下载的mysql压缩包 解压mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar tar -xf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.ta…

2006年真题

数学基础 一、形式化下列语句(共4分) 1.(1分)没有不犯错误的人。 (∀x)(M(x)−>Q(x)) 2.(2 分)虚数既不是有理数也不是无理数。 (∀ x)(W(x)∧P(x)∧Q(x)) 二、填空题(共 9 分) 1.设集合A{a,b,c}, I A I_A IA​…

Jetpack全套

Jetpack全套 一.Jetpack介绍1.特性:2.分类: 二.应用架构三.LifeCycle:1.简介2.简单使用3.实战:Dialog内存泄漏4.Lifecycle的应用(0)activity/fragment上面案例都是(1)Service(2&…

【部署Ruoyi微服务】

IP机器与部署组件 1 安装mysql wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022systemctl enab…

Mysql列的类型定义——整形类型

文章目录 前言一、整数类型的附带属性 类型名称后面的小括号unsignedauto_increment总结 前言 1)采用26字母和0-9的自然数加上下互相 ‘_’ 组成,命名简洁明确,多个单词用下划线 ‘_’ 隔开 2)全部小写命名,尽量避免…

R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术应用

回归分析是科学研究中十分重要的数据分析工具。随着现代统计技术发展,回归分析方法得到了极大改进。混合效应模型(Mixed effect model),即多水平模(Multilevel model)/分层模型(Hierarchical Model)/嵌套模…