HBase的基础知识
文章名称:HBase的基础知识
文章内容:将简单描述HBase的知识点,和对HBase 能够有简单的认识
文章作者:爱划水的潇洒哥
提示:以下内容为个人学习的总结,更多详细资料需您自行查阅。
前言:Hadoop采用Java语言开发,是对Goolgle的 MapReduce、GFS 和 BigData等核心技术的开源实现。基于谷歌的三驾马车开源实现的分布式大数据开发平台,MapReduce是Hadoop的核心组件。
目录
-
HBase是什么
-
HBase有什么用
-
HBase优缺点
-
HBase架构
HBase是什么
HBase是一个开源的、分布式、版本化的非关系型数据库,利用HDFS提供分布式数据存储。
HBase采用了Google BigData稀疏的面向列的数据库的实现方式的原理,建立在HDFS上,一方面用了HDFS的高可靠性和可伸缩性。一方面类似BigData的分布式数据库,大部分特性和BigData一样,是一个稀疏的,长期存储的,多维度、排序的映射表。
HBase有什么用
HBase是可随机访问的存取和检索数据的存储平台,存储结构化和半结构化数据(网站可将网页内容,日志信息存在HBase)
目的:存储并处理大型数据
补充:
结构化数据:关系型数据库,以表形式管理数据
半结构化数据:非关系型模型的,有基本固定结构模型的数据(XML、HTML、Json文件、日志文件)
非结构化数据:没有固定模型数据(word、PDF、PPT、图片、视频)
关系型数据库:“多对多,一对多,一对一”
非关系型数据库:“一列为一个记录,键值对,文档”
HBase优缺点
HBase 是典型的 NoSQL 数据库,通常被描述成稀疏的、分布式的、持久化的,由行键、列键和时间戳进行索引的多维有序映射数据库,主要用来存储非结构化和半结构化的数据。
因为 HBase 基于 Hadoop 的 HDFS 完成分布式存储,以及MapReduce 完成分布式并行计算,所以它的一些特点与 Hadoop 相同,依靠横向扩展,通过不断增加性价比高的商业服务器来增加计算和存储能力。
HBase 虽然基于 Bigtable 的开源实现,但它们之间还是有很多差别的,Bigtable 经常被描 述成键值数据库,而 HBase 则是面向列存储的分布式数据库。
(HBase 是当前,以及未来最实用的数据库之一)
优势
-
容量巨大 (一个单表可有百亿、百万列,可横向,纵向插入数据,弹性巨大)
-
列存储 (它每个列是单独存储,支持独立检索,读取,插入数据相对容易)
-
稀疏性 (HBase中的数据是以字符串形式存储的,为空的列并不占用存储空间,表可以设计成十分稀疏)
-
扩展性强 (HBase工作在HDFS上,支持分布式表,也继承了HDFS的可扩展性,HBase可扩展性是横向的)
-
高可靠性 (HBase工作在HDFS上,HDFS数据有备份,WAL机制保证了数据写入时不会因工作集群异常而导致写入数据丢失)
缺点:
-
单一RowKey固有的局限性决定了它不可能有效地支持多条件查询
-
不适合于大范围扫描查询
-
不直接支持 SQL 的语句查询
HBase架构
上图展示了 HBase 的系统架构,包括客户端、ZooKeeper 服务器、HMaster 主服务器和 RegionServer。Region 是 HBase 中数据的物理切片,每个 Region 中记录了全局数据 的一小部分,并且不同的 Region 之间的数据是互不重复的。
客户端
Client,包含访问HBase接口,是整个HBase系统的入口
Region Server(连接客户)
负责处理数据的读写请求,客户端请求数据时直接和Region Server交互
HBase Master(分配任务)
负责Region的分配,DDL(创,删操作)
Zookeeper
负责维护协调,集群状态
上面的组件式如何一起工作?
Zookeeper用来协调系统中的集群状态信息共享,Region Server和HMaster 和 Zookeeper保持会话,Zookeeper通过心跳检测来维护所有 临时结点
总结
本次HBase知识点过于琐碎,导致没有完整的写完还有一些HBase的模型概念,模型名称没有描述,还有 HBase shell 的一些指令 在后续会补上。本次参考了一份教案目前还在学习整理中,还有太多太多未学习的,还需个人自身学习多一点才有东西更新。