HBase概述
作者:互联网
文章目录
HBase概述
数据库概念
nosql型数据库
Not Only SQL,如:mongodb,Redis(基于内存),HBase
关系型数据库
Oracle(port:1521),MySql(面向中小企业,port:3306),Sql Server(port:3306),PG Sql
MPP数据库
大规模分布式,如Greenplum,HWAQ
HBase简介
HBase是一种构建于HDFS之上的面向列存储的分布式数据库。利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中海量数据,利用zookeeper作为其分布式协同服务。
主要用来存储结构化和半结构化的松散数据(列存NoSQL数据库)
HBase是一个针对结构化数据(结构化,半结构化)的可伸缩,高可靠,高性能,分布式和面向列存储的动态模式数据库。和传统关系数据库不同,HBase采用了Bigtable的数据模型:增强的稀疏排序映射表(Key/Value),其中Key由行键(rowkey),列簇(column)和时间戳构成。
HBase提供了对大规模数据的随机,实时读写访问,同时HBase中保存的数据可以使用MapReduce|Spark来处理,它将数据存储和并行计算完美的结合在一起。
HDFS的缺点:不支持对数据的随机读写,修改,只适合存储大文件;HBase在某种程度上可以解决HDFS的缺点,可以提高HDFS的复用性
面向列存储的优势
- 当每一列的数据类型相同时,可以做高效的压缩;
- 查询速度快,列即索引;
HBase和HDFS以及RDBMS的直接区别
HBase和Hadoop(HDFS)之间的区别
-
HDFS是分布式文件存储系统,存储大量数据;HBase是数据库,构建于HDFS之上;
-
HDFS不支持快速单个记录的查找;HBase支持大表的快速查找;
-
HDFS提供了高延迟的批处理;HBase提供了单行记录低延迟随机访问;
-
HDFS只提供数据按序进行访问;HBase内部是提供hash表随机访问,在HDFS上存放索引文件,用来快速查找。
HBase和RDBMS的区别
-
HBase是无模式,没有固定列,只定义列簇;RDBMS有模式(schema),描述整个表的结构;
-
HBase适合宽表的数据,水平可伸缩;RDBMS适合小表,难于扩展;
-
HBase没有事务的支持;RDBMS支持事务(OLAP联机分析数据仓库/OLTP联机事务);
-
HBase数据不是规范化的;RDBMS是规范化的数据。
HBase特点
注意:使用HBase版本要注意Hadoop版本和JDK版本,要兼容支持
- 数据量大:一个表可以存储上亿行,上百万列,查询快,可以直接介入在线业务;
- 面向列:面向列的存储和权限控制,列可以通过列簇独立检索;
- 稀疏:对于空的列,并不占用存储空间,因此表的设计可以非常稀疏;
- 多版本:每个Cell中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入的时间戳;
- 无类型:HBase中的数据都是字符串,没有类型。
- 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的添加,同一张表中不同行可以有皆然不同的列。
HBase存储
- HBase是面向列簇的数据库,列簇就是把相同的一些列指定到同一组中;
- table定义列簇,也可以指定多个列簇,列簇是可增可减的;
- 没有数据库概念,有namespace命名空间,所有的表都是依赖于一个namespace下,类似于database的概念;
- 行键:rowkey,类似于主键的概念,唯一标识一行数据;
- 列簇:column family包含不同的列(字段);
- version:同一个字段的值可以有多个版本,版本(值 )的区分通过时间戳,默认显示最新版本的version;
- cell单元格:rowkey+column family+version 唯一确定一个单元格的值;
- 列:column在列簇里的字段,不是固定的,可以随机增加|减少。
Hadoop生态系统图
HBase中的表
HBase数据模型
部署HBase
环境:Hadoop环境,Zookeeper环境
HBase是分布式主从架构的数据库
主节点:master,负责管理工作,类似于NameNode,同时也是守护进程;
从节点:regionserver,具体数据流和数据存储工作,类似于DataNode,同时也是守护进程。
启动HBase
注意:启动之前一定要先启动Hadoop和Zookeeper
hbase-daemon.sh start|stop master
hbase-daemon.sh start|stop regionserver
或使用
start-hbase.sh|stop-hbase.sh
HBase的四个架构
1.Client
访问HBase
2.Master
管理类工作的
管理regionserver,负责负载均衡
管理元数据信息(namespace,table)
3.RegionServer
存放region(数据)
响应读写请求,管理表中的数据
4.Zookeeper
保证Master节点对外提供服务只有一台
作为HBase的入口
监控master,负责切换主备
存储HBase的部分元数据信息
标签:列簇,HDFS,存储,数据库,Hadoop,概述,HBase 来源: https://blog.csdn.net/qq_43502858/article/details/94984149