大数据工具——HBASE数据库(一)

article/2025/10/11 9:58:55

一、HBASE基础概念

1.HBASE概念

HBASE是一个数据库----可以提供数据的实时随机读写。HBASE与mysql、oralce、db2、sqlserver等关系型数据库不同,它是一个NoSQL数据库(非关系型数据库)

2.HBase特性

- HBase的表模型与关系型数据库的表模型不同: 
- HBase的表没有固定的字段定义;
- HBase的表中每行存储的都是一些key-value对 
- HBase的表中有列簇的划分,用户可以指定将哪些kv插入哪个列族 
- HBase的表在物理存储上,是按照列簇来分割的,不同列簇的数据一定存储在不同的文件中
- HBase的表中的每一行都固定有一个行键,而且每一行的行键在表中不能重复 
- HBase中的数据,包含行键,包含key,包含value,都是byte[ ]类型,HBase不负责为用 户维护数据类型 
- HBase对事务的支持很差

3.HBASE与RDBMS和NOSQL区别

HBase的表数据存储在HDFS文件系统中。 
从而,hbase具备如下特性:存储容量可以线性扩展; 数据存储的安全性可靠性极高!- hbase的表模型跟mysql之类的关系型数据库的表模型差别巨大- hbase的表模型中有:行的概念;但没有字段的概念 - 行中存的都是key-value对,每行中的key-value对中的key可以是各种各样,每行中的 key-value对的数量也可以是各种各样

4.Hbase表结构

在这里插入图片描述

二、HBASE工作机制

1.图示

在这里插入图片描述

2.组件说明

Client : hbase客户端
1.包含访问hbase的接口。比如,linux shell,java api。
2.除此之外,它会维护缓存来加速访问hbase的速度。比如region的位置信息。

Zookeeper :
1.监控Hmaster的状态,保证有且仅有一个活跃的Hmaster。达到高可用。
2.它可以存储所有region的寻址入口。如:root表在哪一台服务器上。
3. 实时监控 HregionServer的状态,感知HRegionServer的上下线信息,并实时通知给Hmaster。
4. 存 储hbase的部分元数据。

HMaster :
1.为HRegionServer分配Region(新建表等)。
2.负责HRegionServer的负 载均衡。
3.负责Region的重新分配(HRegionServer宕机之后的Region分配,HRegion裂 变:当Region过大之后的拆分)。
4.Hdfs上的垃圾回收。
5.处理schema的更新请求

HRegionServer :
1.维护HMaster分配给的Region(管理本机的Region)。
2.处理 client对这些region的读写请求,并和HDFS进行交互。
3.负责切分在运行过程中组件变大的 Region。

HLog :
对HBase的操作进行记录,使用WAL写数据,优先写入log(put操作:先写日 志再写memstore,这样可以防止数据丢失,即使丢失也可以回滚)。

HRegion :
HBase中分布式存储和负载均衡的最小单元,它是表或者表的一部分。

Store :
相当于一个列簇

Memstore :
内存缓冲区,用于将数据批量刷新到hdfs中,默认大小为128M

HStoreFile :
不过是一个逻辑概念。HBase中的数据是以HFile存储在Hdfs上。

三、HBASE 操作

1. Namespace操作

1. list_namespace:查询所有命名空间
hbase(main):008:0> list_namespace 
NAMESPACE 
default 
hbase
2. list_namespace_tables : 查询指定命名空间的表
hbase(main):014:0> list_namespace_tables 'hbase' 
TABLE 
meta 
namespace
3.create_namespace : 创建指定的命名空间
hbase(main):018:0> create_namespace 'ns1' 
hbase(main):019:0> list_namespace 
NAMESPACE 
default 
hbase 
ns1
4.describe_namespace : 查询指定命名空间的结构
hbase(main):021:0> describe_namespace 'ns1' 
DESCRIPTION 
{NAME => 'ns1'}
5. alter_namespace :修改命名空间的结构
hbase(main):022:0> alter_namespace 'ns1', {METHOD => 'set', 'name' => 'lixi'}hbase(main):023:0> describe_namespace 'ns1' 
DESCRIPTION 
{NAME => 'ns1', name => 'lixi'} hbase(main):022:0> alter_namespace 'ns1', {METHOD => 'unset', NAME => 'name'} 
hbase(main):023:0> describe_namespace 'ns1'
6.删除命名空间
hbase(main):026:0> drop_namespace 'ns1' hbase(main):027:0> list_namespace 
NAMESPACE 
default 
hbase

2 DDL

1.建表

create :建表 hbase(main):010:0> create 'user_info','base_info','extra_info' => Hbase::Table - user_info hbase(main):043:0> create 'ns1:user_info', {NAME=>'base_info',BLOOMFILTER=>'ROWCOL',VERSIONS=>'3'}

2.list : 查询所有的表

hbase(main):002:0> list 
TABLE 
ns1:t1 
ns1:user_info 
2 row(s) in 0.2830 seconds => ["ns1:t1", "ns1:user_info"]

3.describe : 查询表结构

hbase(main):003:0> describe 'ns1:user_info'

4.create , splits : 创建表分片

hbase(main):007:0> create 'ns1:t2', 'f1', SPLITS => ['10', '20', '30', '40']

5.修改表,添加修改列簇信息

hbase(main):009:0> alter 'ns1:t1', {NAME=>'lixi_info'} 
hbase(main):010:0> describe 'ns1:t1'

6.删除列簇

hbase(main):014:0> alter 'ns1:t1', 'delete' => 'lixi_info'

7.删除表(先要disable表,再删除表)

hbase(main):016:0> disable 'ns1:t1' 
0 row(s) in 2.2790 seconds hbase(main):017:0> drop 'ns1:t1' 
0 row(s) in 1.2900 seconds 

3.DML

1.插入数据(put命令,不能一次性插入多条)

hbase(main):012:0> put 'user_info','001','base_info:username','lixi'

2.scan扫描

hbase(main):024:0> scan 'user_info'

3.通过指定版本查询

hbase(main):024:0> scan 'user_info', {RAW => true, VERSIONS => 1}

4.查询指定列的数据

hbase(main):014:0> scan 'user_info',{COLUMNS => 'base_info:name'}

5.分页查询

hbase(main):021:0> scan 'user_info', {COLUMNS => ['base_info:name', 'base_info:age'], LIMIT => 10, STARTROW => '001'}

6.get查询

hbase(main):015:0> get 'user_info','001','base_info:username'

7.根据时间戳查询

hbase(main):029:0> get 'user_info', '001', {TIMERANGE => [1546922817429, 1546922931075]}

8.hbase的一个重要特性:排序特性(rowkey)

插入到hbase中去的数据,hbase会自动排序存储: 
排序规则: 首先看行键,然后看列族名,然后看列(key)名; 按字典顺序 

.9.更新数据

hbase(main):010:0> put 'user_info', '001', 'base_info:name', 'rock'

10.incr

hbase(main):053:0> incr 'user_info', '002', 'base_info:age3'

11.删除一个kv数据

hbase(main):058:0> delete 'user_info', '002', 'base_info:age3'

12.删除一行数据

hbase(main):028:0> deleteall 'user_info','001'

13.删除指定的版本

hbase(main):081:0> delete 'user_info','001','extra_info:feature', TIMESTAMP=>1546922931075

14.删除一个表数据

disable 'user_info' 
drop 'user_info'

15.判断表是否存在

hbase(main):083:0> exists 'user_info'

16.表生效和失效

hbase(main):084:0> enable 'user_info'hbase(main):085:0> disable 'user_info'

17.统计表行数

hbase(main):088:0> count 'user_info'

18.清空表数据

hbase(main):089:0> truncate 'user_info'

http://chatgpt.dhexx.cn/article/IqVDblUb.shtml

相关文章

HBase详细总结

1 HBase 浅析 1.1 HBase 是啥 HBase 是一款面向列存储,用于存储处理海量数据的 NoSQL 数据库。它的理论原型是Google 的 BigTable 论文。你可以认为 HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。 HBase 的存储是基于HDFS的,HDFS 有…

HBase详细概述

本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理存储、HBase系统架构,HBase调优、HBase Shell访问等。 不过在此之前,你可以先了解 Hadoop生态系统 ,若想运行HBase,则需要先搭建…

JPG,PNG,BMP图片无损压缩软件

怎么压缩图片文件的大小呢?现在的科技发展迅速,手机或者摄像机拍摄的图片的像素很高,这样也就导致了图片比较大,我们想要将图片上传作为网站的头像或者其他网站平台都会对图片文件大小进行限制,今天教给大家一种压缩图…

深入前端图片压缩

前言 任何研究都不是凭空产生,至少博主是这样的。 在手机端拍照后图片很大,有的甚至有 10M 多。这个时候再去上传图片,可想而知,速度是很慢的。正因如此,便有了前端图片压缩这个需求。 图片格式 传统的图片格式有 gi…

html图片无损压缩,有损压缩和无损压缩的区别是什么

区别:无损压缩是可以完全还原的;而有损压缩还原后不能和原来文件一样,是有一定损耗的。有损压缩两种的基本机制(有损变换编解码和预测编解码);而无损压缩原理有行程编码、霍夫曼编码和算术编码等。 本教程操作环境:windows10系统、thinkpad t480电脑。 有损压缩是利用了人…

6种比较好的“在线图片无损压缩工具”+PDF转换工具

目录 第一:Tinypng 第二:Compressor.io 第三:Kraken.io 第四:Giftofspeed 第五: OptimiZilla 第六:Imagerecycle 第七:(PDF转换工具)ToePub 第一:Tiny…

Android图片无损压缩库ImageCompress使用(最新优化OOM问题的1.0.10版本)

转载请注明出处:https://blog.csdn.net/hh7181521/article/details/81014839 图片压缩一直是Android的一个痛点,相比较于iOS的效果,Android的压缩简直可以用惨不忍睹来形容! 开源库ImageCompress是基于libjpeg-turbo来进行图片的压…

无损压缩技术

一个视频经过有损压缩完成后,会再进行无损压缩,让视频进一步变小。 DCT 变化 DCT 变化的过程又叫量化,经过有损压缩后,数据分散在二维图标中的各个节点上,经过 DCT 变化,会将所有数据集中到某一块。 转换…

使用Tuimgs在线工具对图片无损压缩教程

正文: 图片体积压缩是很多设计师都不陌生的事情,在多数情况下,即使你并不是一位设计师,但是你也可能需要使用到图片压缩,就例如:我们需要存储一张图片到手机的时候,但是这张图片的体积实在是太大了,会占用…

图片无损压缩工具(报名照片压缩至30Kb以下

% 我姐报名的需求 (文中图片都是直接拖入博客编辑器的) 素材选用:邓紫棋照片一张 【排雷】吐槽一下知乎高赞答案提供的方法:右键编辑,重新设置大小 198赞,评论一堆尬吹 用此方法将上图压缩至27.7KB结果如…

图片无损压缩软件哪个好用:试试完全免费的JPG-C 图片批量修整压缩减肥工具吧 | 最新jpg批量修整工具下载

JPG-C是一款完全免费且非常实用的电脑批量图片无损压缩软件,基于Net开发,也叫jpg批量修整工具,第一个版本始于2013年4月份,区区几百KB的超迷你身材但是能力确不容小觑,用户可以根据自定的压缩级别以单个或批量的方式对…

win7查询计算机硬盘sn,电脑win7系统查询硬盘序列号的方法

近些年来,科学技术的迅猛发展,极大地推动了计算机网络技术的进步,计算机网络的日益发展,使人们的生活也发生着巨大的变化。下面是学习啦小编为大家整理的关于电脑win7系统查询硬盘序列号的方法,一起来看看吧! 电脑win7系统查询硬盘序列号的方法 方法一:我…

win7/win10下装centos7双系统

工具及材料 1、一台PC 2、一个U盘,8G以上 3、需要的文件:CentOS-7-x86_64-DVD-1511.iso(其他版本也可以如 1611) 4、需要的软件:USBwriter(优于UltraISO) 第一步:从windows硬盘分区中再划一个用于装centos的分区 我的电脑->右键->管理,然后 到这里…

计算机系统盘涨满怎么办,win7系统C盘突然就满了怎么办?win7系统盘突然爆满了三种解决方法图文教程...

最近,有win7系统用户反映,电脑的系统盘突然就爆满了,这该怎么办呢?大家可以释放C盘空间,下面脚本之家的小编和大家讲解win7系统盘突然就满了三种解决方法,一起来看看吧。 win7系统盘突然就满了解决方法一:移走虚拟内存文件到非系统盘 大家都知道,为了加快系统的运行,W…

win7修复计算机 正常启动不了怎么办,Win7系统无法正常启动怎么办

Win7系统开机自检之后,始终无法进入系统,重启也无法解决。不要紧,下面是学习啦小编给大家整理的一些有关Win7系统无法正常启动的解决方法,希望对大家有帮助! Win7系统无法正常启动的解决方法一 1.我们可以开机F8进入系统高级选项菜…

Win7系统文件缺失怎么修复

Win7系统文件缺失怎么修复?有些朋友的电脑经常会提示缺失某些文件,比较严重的连系统桌面都进不去,大家想要了解有什么方法可以修复系统文件缺失的问题。今天俺就给大家分享几个恢复系统文件的方法。 一、进入安全模式 在重启或者电脑开机的时…

关于Win7系统“U盘拒绝访问”解决问题

问题场景: 提示:U盘无损坏,不能显示容量,并且提示拒绝访问 在属性中有很明显的不能够更改操作组和用户组的权限,无法添加用户权限名称 解决方案: 1、在系统桌面上,按组合键(win键…

服务器虚拟机怎么安装win7系统教程,虚拟机怎么安装win7系统 虚拟机安装win7系统教程...

有的时候我们会想要通过虚拟机来进行安装win7系统,但如果不会安装该怎么办呢?这个问题好解决,不是大事,你们就继续往下看,看看虚拟机怎么安装win7系统的吧。 虚拟机安装win7系统教程方法 1.打开运行虚拟机,然后点击界…

用u盘给服务器装win7系统,用U盘装系统装Win7图文教程

win7之家小编认为用U盘装系统装Win7是一个非常好用的方法,那么我们到底要如何利用u盘装win7系统呢?其实方法非常简单,下面小编就来教大家u盘装win7系统,一起来看看下面这篇用U盘装系统装Win7图文教程吧,保证不会让大家失望的哦。 工具/原料: U盘一个 方法/步骤: 首先我们…

电脑W7系统怎样安装鸿蒙系统,真正纯净版的win7系统

真正纯净版的win7系统很多的小伙伴都非常的想要下载,很想试试这个版本的win7吧,win是目前兼容性比较高的一个系统,也是很多用户选择的一个版本,喜欢的用户赶紧下载试试吧。 真正纯净版的win7系统特色 人性化的设计师资源保证所有的非系统都保存在磁盘上,不会再次丢失。 系…