置顶

hbase四维定位表,hbase查询数据的四维定位

作者:hacker | 分类:网络攻防 | 浏览:156 | 日期:2023年03月15日

目录:

Hbase的特性有哪些

HBase不是一个关系型数据库,它需要不同的 *** 定义你的数据模型,HBase实际上定义了一个四维数据模型,下面就是每一维度的定义:

行键:每行都有唯一的行键,行键没有数据类型,它内部被认为是一个字节数组。

列簇:数据在行中被组织成列簇,每行有相同的列簇,但是在行之间,相同的列簇不需要有相同的列修饰符。在引擎中,HBase将列簇存储在它自己的数据文件中,所以,它们需要事先被定义,此外,改变列簇并不容易。

列修饰符:列簇定义真实的列,被称之为列修饰符,你可以认为列修饰符就是列本身。

版本:每列都可以有一个可配置的版本数量,你可以通过列修饰符的制定版本获取数据。

北大青鸟java培训:Hbase知识点总结?

hbase概念:  非结构化的分布式的面向列存储非关系型的开源的数据库,根据谷歌的三大论文之一的bigtable  高宽厚表  作用:  为了解决大规模数据 *** 多重数据种类带来的挑战,尤其是大数据应用难题。

  能干什么:  存储大量结果集数据,低延迟的随机查询。

  sql:  结构化查询语言  nosql:  非关系型数据库,列存储和文档存储(查询低延迟),hbase是nosql的一个种类,其特点是列式存储。

  非关系型数据库--列存储(hbase)  非关系型数据库--文档存储(MongoDB)  非关系型数据库--内存式存储(redis)  非关系型数据库--图形模型(graph)  hive和hbase区别?  Hive的定位是数据仓库,虽然也有增删改查,但其删改查对应的是整张表而不是单行数据,查询的延迟较高。

其本质是更加方便的使用mr的威力来进行离线分析的一个数据分析工具。

  HBase的定位是hadoop的数据库,电脑培训发现是一个典型的Nosql,所以HBase是用来在大量数据中进行低延迟的随机查询的。

  hbase运行方式:  standalonedistrubited  单节点和伪分布式?  单节点:单独的进程运行在同一台机器上  hbase应用场景:  存储海量数据低延迟查询数据  hbase表由多行组成  hbase行一行在hbase中由行健和一个或多个列的值组成,按行健字母顺序排序的存储。

hbase列式数据库四维坐标是什么

实际上,HBase是一个列族数据库,而不是真正的列式数据库。

因为允许存放非结构化数据,所以HBase的数据类型只有简单的字符串类型,如果需要细分类型,需要用户自己处理。

HBase的四维模型中每个元素:

(1)行键(Row Key):更大长度为64KB的任意字符串。与关系型数据库一样,行键是行的唯一标志。

(2)列族(Column Family):这是理解列族数据库的关键概念。将数据行中的字段按照某种要求分成数个小组,每个小组包含若干个字段,每个小组就是列族。列族需要预先定义,并且不能随意修改。每行具有相同的列族,但不要求每个列族都存储数据。

(3)列限定符(Qualifier):每个列族包含多个字段,限定符用于区分不同的字段。列限定符不需要预先定义,因此每行可以有不同数量的列限定符,也可以认为列限定符就是字段。

(4)单元(Cell):存储数据的最小单元。单元中存储的是未经解释的字符串,需要通过行键、列族、列限定符、时间戳进行定位。

(5)版本(Version):这是HBase与其他数据库的不同之处。版本是一个64位整型数,可以由系统自动生成,也可以由用户自定义。引入版本后,存储在单元中的值不再只有一个,可以通过不同的时间戳(Timestamp)在同一单元中存入多个版本。

HBASE 1.0

前身:BigTable

网页搜索:

google分布式存储系统BigTable依赖GFS

Hbase(bigtable的开源实现): 高可靠、高性能、面向列、可伸缩

存储结构化和半结构化的数据

优点:

水平可扩展性特别好:

依赖:

文件存储系统:HDFS

海量数据处理:MapReduce

协同管理服务:Zookeeper

满足了:大数据量的实时计算

数据类型:

    RDBMS:关系数据模型、多种数据类型

    Hbase:

数据操作:

存储模式:

索引:

数据维护:

可伸缩性:

        纵向扩展:

        水平扩展:

Hbase的访问接口:

            JAVA API

            shell

            thrift Gateway

            restful Gateway

            SQL接口:pig编写类sql  hive用hivesql访问Hbase

Hbase的数据类型:

        列限定符

        每个值都是未解释的bytes

        一个行可以有一个行键和多列

        表由列族组成

Hbase数据模型:

    列族支持动态扩展、保留旧版本(HDFS只能追加数据)

基础元素:

    行键 : rowkey

    列族

    列限定符

    单元格 (时间戳概念、对应数据版本)

坐标概念:

    四维定位:行键、列族、列限定符、时间戳

稀疏表

HBASE:面向列的存储:高数据压缩率、分析便捷

RDBMS :面向行存储,事务性操作(记录完整)、不便于分析(需要全表扫描)

4.3 HBASE 的实现原理

4.3.1 库函数 、master服务器、region服务器

Master服务器:

分区信息进行维护和管理

维护region服务器列表

确认当前工作的region服务器

负责对region进行分配和负载平衡

对表的增删改查

region服务器:

客户端不依赖于Master获取位置信息

用户数据的存储和管理

Region服务器--10-1000个region -----Store是一个列族----每个列族就是一个Hfile----所有region公用1个Hlog

写数据流程:Region服务器---写缓存Memstore---写日志(Hlog)

读数据流程:Region服务器-读缓存Memstore(最新数据)----StoreFile

缓存刷新:周期性将缓存内容刷写到Storefile 清空缓存---Hlog写入标记

每次刷写会生成新的StoreFile 每个Store包含多个StoreFile

每个Region服务器都有一个自己的Hlog,将启动检查确认缓存刷新是否有新的内容需要刷写,发现则刷写新的storefile,完成后删除Hlog,开始对外提供服务

Storefile的合并,storefile 的数量达到阈值后,会进行合并。当Storefile超过大小阈值则会触发Region的分裂

4.4 Hlog的工作原理

Zookeeper负责监听region服务器,由master处理故障,通过故障服务器的Hlog恢复,按region切分Hlog,将region和对应的Hlog分配到新的region服务器上

一个HBASE表会被划分成多个Region(1G-2G 取决于服务器性能)

同一个region不会被拆分到不同服务器上

Region的寻找:

Meta表:regionID 服务器ID 存储元数据

Root表:只有一个region

三级寻址:

zookeeper文件---root表-多个meta表--多个用户数据表

客户端会有Hbase三层寻址的缓存,调用访问Hbase的接口,缓存失效后,再次寻址

zookeeper决定master服务器,确保只有一个master

4.5 Hbase的应用方案

性能优化:

1)时间靠近存放----将时间戳引入行键,使用Long.max-时间戳进行排序

2)提升读写性能,创建表时设置HcloumnDescriptor.setMemory=true,会将表放入内存的缓存中

3)节省存储·空间----设置更大版本数、保存最新版的数据,将更大版本参数设置为1

4)timetolive参数,会将过期数据自动清空

检测Hbase性能:

Maste-status(web浏览器查询)

ganglia

OpenTSDB

Armbari

sql 查询HBASE

1)hive整合hbase

2)Phoenix

Hbase 二级索引 (辅助索引)

默认只支持对rowkey进行索引

Hbase行访问:

1)单行键访问

2)确定起点和终点访问区间数据

3)全表扫描

二级索引样例:

    Hindex    Hbase+redis  Solr+ Hbase

二级索引的机制:

        Hbase Coprocessor 

        endpoint  ---存储过程

        observer----触发器

        通过Observer监测数据插入动作,同步写入索引表,完成对表和列的索引

      Hbase 主表 索引表

4.6 HBASE的shell命令

三种部署模式:单机 伪分布式  分布式

HDFS

创建表

create table, F1, F2, F3

list table

每次只能为1行的1列添加数据

put  table R1,R1:C1 ,“1,2,3”

scan  table  R1,{column='R1:C1'}

get  table

删除表:

disable table +drop table

4.7 JAVA API +HBASE

发表评论

访客 游客 2023-03-15 · 回复该评论
位。(5)版本(Version):这是HBase与其他数据库的不同之处。版本是一个64位整型数,可以由系统自动生成,也可以由用户自定义。引入版本后,存储在单元中的值不再只有一个,可以通过不同的时间戳(Ti

访客 游客 2023-03-15 · 回复该评论
amp)在同一单元中存入多个版本。HBASE 1.0前身:BigTable 网页搜索: google分布式存储系统BigTable依赖GFS Hbase(bigtable的开源实现): 高可靠、高性能、面向列、可伸缩 存储结构化和半结构

访客 游客 2023-03-15 · 回复该评论
目录:1、Hbase的特性有哪些2、北大青鸟java培训:Hbase知识点总结?3、hbase列式数据库四维坐标是什么4、HBASE 1.0Hbase的特性有哪些HBase不是一个关系型数据库,它需要不同的方法定义你的数据模型,HB

取消
微信二维码
支付宝二维码