Hbase入门(一)——初识Hbase

file

本文将介绍大数据的知识和Hbase的基本概念,做为大数据体系中重要的一员,Hbase弥补了Hadoop只能离线批处理的不足,支持存储小文件,随机检索。而这种特性使得Hbase对于实时计算体系的事件存储有自然的较好的支持。这使得Hbase在实时流式计算中也扮演者重要的角色。html

file

一、大数据与Hbase

大数据在近几年发展迅速,而实时计算也是一个重要的发展趋势。无论是企业中的日志数据,仍是传感器、智能设备等等产生的数据,不可胜数。mysql

而这些数据中结构化的数据只占一小部分,大部分是非结构化的数据。这个时候,好比图片视频等就不能轻松的存储在关系型数据库中,而大数据是能够对各类类型的数据均可以进行处理的。redis

file

但关系型数据库有几点缺陷:sql

没法应对高并发的考验,没有办法横向扩展,事务一致性对性能的影响。mongodb

而Nosql数据库,也就是Not Only Sql的缩写。扩展性强,并发性能好,数据模型灵活。数据库

Hbase,也就是Hadoop Database是一个高可靠、高性能、可伸缩的分布式数据库。Hbase参考了谷歌的BigTable建模,使用HDFS做为底层存储。使用Zookeeper做为协同服务组件。安全

Hbase使用Java编写,仍是一种NoSQL数据库,这些特性决定了Hbase独特的应用场景。服务器

二、概念特性

HBASE是一个数据库----能够提供数据的实时随机读写并发

HBASE与mysql、oralce、db二、sqlserver等关系型数据库不一样,它是一个NoSQL数据库(非关系型数据库)nosql

Hbase的表模型与关系型数据库的表模型不一样:

​  Hbase的表没有固定的字段定义;

​  Hbase的表中每行存储的都是一些key-value对;

​  Hbase的表中有列族的划分,用户能够指定将哪些kv插入哪一个列族;

​  Hbase的表在物理存储上,是按照列族来分割的,不一样列族的数据必定存储在不一样的文件中;

​  Hbase的表中的每一行都固定有一个行键,并且每一行的行键在表中不能重复;

​  Hbase中的数据,包含行键,包含key,包含value,都是byte[ ]类型,hbase不负责为用户维护数据类型;

​  HBASE对事务的支持不好;

HBASE相比于其余nosql数据库(mongodb、redis、cassendra、hazelcast)的特色:

Hbase的表数据存储在HDFS文件系统中

从而,hbase具有以下特性:存储容量能够线性扩展; 数据存储的安全性可靠性极高!

三、核心模块

file

客户端Client

整个Hbase的入口,使用者经过客户端操做Hbase。经过客户端与HMaster和RegionServer进行通信。管理类操做与HMaster通讯,读写类操做与RegionServer通信。

协调服务zookeeper

zookeeper负责管理Hbase中多个HMaster的选举,服务器间状态同步。

主节点HMaster

HMaster能够启动多个,由zookeeper保证总有一个正常运行,其余做为备选。

HMaster主要负责Table和Region的管理工做。

节点HRegionServer

HRegionServer主要负责响应用户IO请求,向HDFS中读写数据。HRegionServer管理了一系列的HRegion对象。HRegion对应了Table中的一个Region。HRegion由多个HStore组成,HStore对用了Table中一个Column Family。

并且每一个HRegionServer都有一个HLog对象,用于数据恢复。

四、使用场景

搜索引擎

生成索引,在查询时经过对条件的拼接,迅速的查找到要查询的数据。

实时流式计算

无论是实时的推荐系统,仍是日志的增量存储,都是实时流式计算的一个应用。

经过将数据增量的存入Hbase,并在流式处理中实时查询Hbase,结合历史获得最终的分析结果。

更多Hbase,Flink,Kafka等实时流式计算相关博文,欢迎关注实时流式计算:

file

原文出处:https://www.cnblogs.com/tree1123/p/11576372.html