Hbase

本文详细介绍了HBase,一个基于Hadoop的分布式列式数据库。HBase非关系型,适合处理大量非结构化和半结构化数据。文章对比了HBase与传统数据库的区别,强调了HBase的线性扩展性和高效读写能力。内容涵盖HBase的数据模型、架构、安装过程以及优化策略,包括表的创建、读写操作和缓存管理。此外,还讨论了HBase与DBMS的比较,指出HBase虽然不支持灵活查询,但可通过二级索引和与ES集成提升搜索效率。
摘要由CSDN通过智能技术生成

hbase简介

在这里插入图片描述
​​​​
hbase 是非关系型数据库
hadoop database 是一个高可用,高性能,面向列的kv键值对,可伸缩,实时读写的分布式数据库

利用hadoop hdfs 作为其文件存储系统,系统hadoop mapreduce 来处理hbase中海量数据,利用zookeeper作为其分布式协同服务

主要用来存储非结构化和半结构化的松散数据(列存 nosql数据库)

与传统数据库的对比:

1、传统数据库遇到的问题:

1)数据量很大的时候无法存储;
2)没有很好的备份机制;
3)数据达到一定数量开始缓慢,很大的话基本无法支撑;

2、HBASE优势:

1)线性扩展,随着数据量增多可以通过节点扩展进行支撑;
2)数据存储在hdfs上,备份机制健全;
3)通过zookeeper协调查找数据,访问速度快。

hbase 数据模型

在这里插入图片描述
HBase是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列。后续列的值连续存储在磁盘上。表中的每个单元格值都具有时间戳。总之,在一个HBase:

表是行的集合。
行是列族的集合。
列族是列的集合。
列是键值对的集合。

  • row key
    决定一行数据,
    按照字典数据排序的
    rowkey 只能存储64k的字节数据
    一般存10~100个字节

  • Column Family 列族 qualifier 列
    HBase表中的每个列都归属于某个列族,列族必须作为表 模式(schema)定义的一部分预先给出。如 create ‘test’, ‘course’;

    列名以列族作为前缀,每个“列族”都可以有多个列成员(column);如course:math, course:english, 新的列族成员(列)可以随后按需、动态加入;

    权限控制、存储以及调优都是在列族层面进行的;

    HBase把同一列族里面的数据存储在同一目录下,由几个文件保存

  • Timestamp时间戳
    在HBase每个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。

    时间戳的类型是 64位整型。

    时间戳可以由HBase(在数据写入时自动)赋值,此时时间戳是精确到毫秒的当前系统时间。

    时间戳也可以由客户显式赋值,如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。

  • Cell单元格
    由行和列的坐标交叉决定;
    单元格是有版本的;
    单元格的内容是未解析的字节数组;
    由{row key, column( = +), version} 唯一确定的单元。
    cell中的数据是没有类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值