其他分享
首页 > 其他分享> > HBase概述

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的复用性

面向列存储的优势

  1. 当每一列的数据类型相同时,可以做高效的压缩;
  2. 查询速度快,列即索引

HBase和HDFS以及RDBMS的直接区别

HBase和Hadoop(HDFS)之间的区别

  1. HDFS是分布式文件存储系统,存储大量数据;HBase是数据库,构建于HDFS之上;

  2. HDFS不支持快速单个记录的查找;HBase支持大表的快速查找;

  3. HDFS提供了高延迟的批处理;HBase提供了单行记录低延迟随机访问

  4. HDFS只提供数据按序进行访问;HBase内部是提供hash表随机访问,在HDFS上存放索引文件,用来快速查找。

HBase和RDBMS的区别

  1. HBase是无模式,没有固定列,只定义列簇;RDBMS有模式(schema),描述整个表的结构;

  2. HBase适合宽表的数据,水平可伸缩;RDBMS适合小表,难于扩展;

  3. HBase没有事务的支持;RDBMS支持事务(OLAP联机分析数据仓库/OLTP联机事务);

  4. HBase数据不是规范化的;RDBMS是规范化的数据。

HBase特点

注意:使用HBase版本要注意Hadoop版本和JDK版本,要兼容支持

  1. 数据量大:一个表可以存储上亿行,上百万列,查询快,可以直接介入在线业务;
  2. 面向列:面向列的存储和权限控制,列可以通过列簇独立检索;
  3. 稀疏:对于空的列,并不占用存储空间,因此表的设计可以非常稀疏;
  4. 多版本:每个Cell中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入的时间戳;
  5. 无类型:HBase中的数据都是字符串,没有类型。
  6. 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的添加,同一张表中不同行可以有皆然不同的列。

HBase存储

  1. HBase是面向列簇的数据库,列簇就是把相同的一些列指定到同一组中;
  2. table定义列簇,也可以指定多个列簇,列簇是可增可减的;
  3. 没有数据库概念,有namespace命名空间,所有的表都是依赖于一个namespace下,类似于database的概念;
  4. 行键:rowkey,类似于主键的概念,唯一标识一行数据;
  5. 列簇:column family包含不同的列(字段);
  6. version:同一个字段的值可以有多个版本,版本(值 )的区分通过时间戳,默认显示最新版本的version;
  7. cell单元格:rowkey+column family+version 唯一确定一个单元格的值;
  8. 列: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