HBASE基础

    技术2025-04-05  57

    1.介绍

    一种分布式Hadoop数据库支持随机访问和数据检索不适合实时处理,适合海量数据

    2.背景

    关系型数据库(RMDBS):MySQL,Oracle非关系型数据库(nosql):no only sqlbigtable—>hbasegfs—>hfs

    3.使用场景

    3.1 互联网搜索:bigtable

    bigtable/hbase专门用于搜索引擎的数据存储

    建立索引的含义:爬虫行为不断,加快检索数据速度

    3.1.1 bigdata发明的原因

    抓取增量数据内容服务信息的交换

    4 hbase安装

    4.1 步骤

    5.hbase 特性

    5.1 特性

    表模型和关系型数据库表模型不同表没有固定的字段定义表中每行存储的数据都是键值对表中有列簇的划分,用户可以指定将那些键值划分到列簇hbase的表存在物理存储上,是按照列簇来划分的,不同列簇的数据一定存储在不同的文件中每一行都有一个固定的行键,每一行的行键在表中不能重复hbase中的数据,包含行键、键值。。。都是byte类型,本身不负责维护数据类型对事务支持很差

    和nosql和RMDBS的区别:

    HBAseRMDBS数据类型只有字符串丰富的数据类型数据类型数据类型数据类型

    hbase表模型

    一个表(表名) rowkey,行键不重复 多个colum family cell 对应一个kv 存储多个历史版本 数据如果太大,会被横向切分成脱肛额region(用rowkey范围标识),不同region的数据存储在不同的文件中 hbase会对插入的数据按顺序存储:首先按照行键排序;同一行礼的kv会按照列簇排序,再按照kv排序

    5.2 工作机制

    client:客户端,访问hbase的主键都可以是客户端。sh/py等文件都可以。ZK:一个集群。

    监控master。保证一个集群中有且仅有一台hmaster是存活的,为了高可用 存储所有region的寻址入口。 实时监控region server的状态。感知regionserver的上下限,实时通知hmaster.还会存储hbase的部分元数据。

    hmaste:

    整个hbase主机。为regionmaster分配region。负责regionserver的负载均衡。 负责region的重新分配。 hdfs的垃圾回收 schema的更新请求

    regionserver

    维护master分配给他的region 负责处理client对region的读写请求并和HDFS进行交互 负责具体的关于region的切分

    hlog

    会对HBASE所有操作进行记录,当有插入操作,先将操作写入到日志,然后再写源数据库

    region

    表的一部分 hbase分布式存储和负载均衡的最小单元

    store

    列簇

    memorystore

    内存缓冲区。专门用于将数据批量刷新到HDFS中。默认为128M(内存缓冲区)

    hfile/storefile

    hbase中的文件都会以hfile的形式存储到HDFS中。

    7.数据读写

    put ()delete()incr()

    7.1写数据

    1)Client 向 HregionServer 发送写请求; 2)HregionServer 将数据写到 HLog(write ahead log)。为了数据的持久化和恢复; 3)HregionServer 将数据写到内存(MemStore); 4)反馈 Client 写成功。

    7.2 写流程

    7.3 hbase shell 操作

    通用命令

    help:查看帮助文档help ‘XX’:查看某一文档的命令

    DDL命令

    Processed: 0.009, SQL: 9