• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

https://www.w3cschool.cn/hbase_doc/

HBase 概述

HBase是Hadoop的生态系统,是基于Hadoop文件系统(HDFS)的分布式、面向列的数据库,利用Hadoop文件系统提供容错。如果需要实时读写或者随机访问大规模数据集,请考虑使用HBase!

HBase是Google Bigtable的开源实现,Google Bigtable使用GFS作为其文件存储系统。HBase使用Hadoop HDFS作为其文件存储系统。Google通过运行MapReduce来处理Bigtable中的海量数据。同样,HBase使用Hadoop MapReduce来处理HBase中的海量数据。Google Bigtable使用Chubby作为协作服务,而HBase使用Zookeeper作为其对应服务。

HBase

HBase处理数据

Hadoop是一种高容错、高延迟、高并发的分布式文件系统,但不适合提供实时计算。HBase是一个可以提供实时计算的分布式数据库。数据存储在HDFS分布式文件系统上,保证了高容错性。但是HBase如何在重现环境下提供基于hadoop的实时性能呢?HBase上的数据以StoreFile(HFile)二进制流的形式存储在HDFS上的block块中;然而,HDFS不知道HBase是用来存储什么的。它只把存储的文件看作二进制文件,即HBase存储的数据对HDFS文件系统是透明的。

HBase与HDFS

在下表中,我们比较了HDFS和HBase:

HDFSHBaseHDFS适用于存储大容量文件的分布式文件系统。

HBase是一个基于HDFS的数据库。

HDFS不支持快速个人记录查找。

HBase在较大的表中提供快速查找。

HDFS提供高延迟批处理;没有批处理概念。

HBase为数十亿条记录提供对单行记录的低延迟访问(随机访问)。

HDFS提供的数据只能按顺序查阅。

HBase内部使用哈希表并提供随机访问,其存储索引可以快速搜索HDFS文件中的数据。

HBase 数据模型

HBase以表的形式存储数据,每个表都由列和行组成,其中每列又分为几个行族。请参考下图:

HBase

现在我们来看看HBase的逻辑数据模型和物理数据模型(实际存储的数据模型):

逻辑数据模型:

HBase

物理数据模型:

HBase

HBase 架构

下图显示了HBase的组成结构:

HBase

从上图我们可以得出结论,Hbase中的每个表都按照一定的范围划分成多个子表(HRegions)。默认情况下,当一个HRegion超过256M时,会被一分为二,其中HRegionServer管理HRegion,HMaster分配HRegion。

现在我们来介绍HBase中的一些组件及其功能:

Client:包含访问HBase的接口,并维护缓存以加速对HBase的访问。

动物园管理员:HBase依赖于动物园管理员。默认情况下,HBase管理Zookeeper实例(启动或关闭Zookeeper)。主服务器和区域服务器将在启动时向Zookeeper注册。动物园管理员的角色如下:

确保集群中任何时候都只有一个主节点。

存储所有区域地址条目。

实时监控区域服务器的在线和离线信息。并实时通知主人。

存储HBase的模式和表元数据

HRegionServer:用于维护master分配给他的区域,处理对这些区域的io请求;负责分割在运行过程中变得过大的区域。

HRegion:HBase hbase表在行方向上被分成多个区域。区域是HBase中分布式存储和负载均衡的最小单位,即不同的区域可以位于不同的区域服务器上,但同一区域不会拆分到多个服务器上。区域按大小分开。通常,每个表中只有一个区域。当区域的列族达到阈值(默认情况下为256M)时,它将被分成两个新区域。

商店:每个区域由一个或多个商店组成,至少一个商店。HBase会把访问到的数据一起放在一个存储中,也就是为每个ColumnFamily建立一个存储。如果有几个ColumnFamilies,就会有几个stores。一个存储由一个memStore和0个或多个StoreFile组成。HBase使用存储的大小来确定是否有必要分割区域。

StoreFile:MemStore内存中的数据写入文件后是一个StoreFile,store file的底层以HFile格式保存。

HLog:HLog记录数据的所有变化,可用于恢复文件。一旦区域服务器关闭,就可以从日志中恢复。

LogFlusher:LogFlusher的一个类用来调用HLog.optionalSync()。

HBase 的应用

HBase用于需要重写的应用程序。

HBase可以帮助快速随机地访问数据。

HBase已经被很多公司采用,比如脸书,推特,雅虎!Adobe、OpenPlaces、WorldLingo等等。

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now