1、HBase概述

HBase是hadoop生态系统中的重要组成部分,是一个开源的、面向列、适合存储海量非结构化数据或半结构化数据,具备高可靠性、高性能、可灵活扩展伸缩、支持实时数据读写的分布式存储系统

存储在Hbase中的表的特征

1、大:一个表可以有上亿行,上百万列

2、任意模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中的不同的行,它们的列可以不相同

3、面向列:面向列(簇)的存储和权限控制,列(簇)独立检索

4、稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏

5、多个数据版本:每个单元中的数据可以有多个数据版本,默认情况下自动分配版本号,版本号是单元格插入时的时间戳

6、唯一数据类型:Hbase中的数据都是字符串类型,没有其它数据类型

2、HBase数据模型

1、Table

1、Table中的数据可以非常稀疏

2、每个Table中的所有行都是按照row key的字典序排序

2、Row Key

1、它是byte array(字节数组)

2、它是表中每条记录的主键

3、通过Row Key方便查找每行记录

3、ColumnFamily

1、每个ColumnFamily都有一个名称

2、它包含一个或者多个列

3、每个表可以由多ColumnFamily组成

4、每个ColumnFamily存储在HDFS上的一个单独的文件中

5、Key和版本号在每个ColumnFamily中都保存有一份

4、Column

1、它属于某一个ColumnFamily。比如,FamilyName:columnName

2、HBase表中的列是动态的列

5、TimeStamp

1、每一个Row Key可以有多个版本号

2、版本号可以由用户来提供

6、Cell

1、存储具体的byte array

2、单元内的空值不会被保存

3、HBase物理模型

1、每个Table会在行的方向上,分割为多个Region

2、Region按照数据大小来分割,每一个Table刚开始只有一个region,随着数据的增多,region就会不断的增大,当增大到一个阀值的时候,region就会等分成两个新的region。当Table越来越大的时候,region就会越来越多

3、每个region是HBase中分布式操作和负载均衡的最小单位,不同的region可能分布到不同的regionServer上

4、Region虽然是分布式操作的最小单元,但并不是存储的最小单元,在region里面,又划分了很多更小的单位进行存储,如下所示

1、Region由一个或者多个Store组成,每个Store保存一个ColumnFamily

2、每个Store又由一个memStore和多个storefile组成

3、memstore存储在内存中,storefile存储的HDFS上

4、HBase基本架构

1、Client

可以有多个Client运行在不同机器上,Client也会维护了一个缓存,用来加快对HBase的访问速度

2、Zookeeper

1、保证在任何时候,集群中有且仅有一个master

2、存储了所有region的寻址入口

3、实时监控RegionServer的健康状况,并实时的通知给Master

4、存储的HBase的shecma和table的元数据信息

3、Master

1、为RegionServer分配region

2、负责regionserver的负载均衡

3、如果发现失效的RegionServer,Master会重新分配它上面的region

4、管理用户对table的增删改查操作

4、Region Server

1、RegionServer的作用就是维护region,处理对这些region的I/O请求

2、RegionServer也负责切分超过阀值的region

5、Hbase中的Zookeeper

1、Hbase的运行依赖于Zookeeper

2、Master与RegionServer启动时会向Zookeeper注册,Zookeeper可以监控Master和RegionServer的健康状况

3、Hbase通过引入Zookeeper解决了Master的单点故障

6、Hbase支持的操作

1、HBase所有的操作均基于rowkey的操作

2、HBase支持增删改查和scan

3、Hbase支持单行操作

1、Put

2、Get

3、Scan

4、Hbase支持多行操作

1、Scan

2、MultiPut

5、Hbase没有内置的join操作,但可以通过MapReduce来解决

7、Hbase Write-Ahead-Log(预先写日志)

8、Hbase容错机制

1、Master容错:

实际生产环境中,HBase一般配置多个Master,当对外提供服务的Master挂掉之后,Zookeeper会重新选举一个新的Master

1、数据读取不受影响,因为数据读取过程不需要与Master交互

2、region切分、负载均衡等无法进行

2、RegionServer容错:

1、定期的向Zookeeper提供心跳,如果Zookeeper一段时间没有收到心跳信息,Zookeeper会通知Master,RegionServer挂掉了,Master会将该RegionServer上的region重新分配到其他RegionServer上

2、失效RegionServer上的预写日志,会由主服务器进行分割,然后分配给对应的RegionServer上

3、Zookeeper容错:

Zookeeper可以提供一个可靠的服务,一般我们配置3个、5个、7个等奇数个实例

9、Hbase中的region定位

1、首先要访问Zookeeper,查找到ROOT表的位置

2、从ROOT表里面获取META表的位置,我们在对应RegionServer上读取META表

3、在META表里面定位到我们要找的region的位置

4、到RegionServer上来读取对应region上面的数据

10、Hbase与关系型数据库的比较

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【刘超★ljc】。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

初步掌握HBase的更多相关文章

  1. hbase系列之:独立模式部署hbase

    一.概述 在上一篇博文中,我简要介绍了hbase的部分基础概念,如果想初步了解hbase的理论,可以参看上一篇博文 hbase系列之:初识hbase .本博文主要介绍独立模式下部署hbase及hbas ...

  2. HBase写的初步测试中的表现

    底 第四年HBase.在上线的机HBase集群做一个初步的测试写入性能.下面具体说明做测试内容. 说明 HBase周围环境 0.96版本号,8台region server.默认配置 写数据说明 单co ...

  3. HBASE学习笔记-初步印象

    HBASE概念: HBASE是一个分布式架构的数据库,通过对数据进行多层的分块打散储存.从而改写传统数据库的储存能力和读取速度. HBASE的集群服务器: HBASE的集群主要分为Zookeeper集 ...

  4. HBase最佳实践-列族设计优化

    本文转自hbase.收藏学习下. 随着大数据的越来越普及,HBase也变得越来越流行.会用HBase现在已经变的并不困难,然而,怎么把它用的更好却并不简单.那怎么定义'用的好'呢?很简单,在保证系统稳 ...

  5. HBase工程师线上工作经验总结----HBase常见问题及分析

    阅读本文可以带着下面问题:1.HBase遇到问题,可以从几方面解决问题?2.HBase个别请求为什么很慢?你认为是什么原因?3.客户端读写请求为什么大量出错?该从哪方面来分析?4.大量服务端excep ...

  6. 搜索引擎系列 ---lucene简介 创建索引和搜索初步

    一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 :Lucene得名于Doug妻子 ...

  7. 初步认识Hive

    初步认识Hive hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习 ...

  8. (转)HBase工程师线上工作经验总结----HBase常见问题及分析

    阅读本文可以带着下面问题:1.HBase遇到问题,可以从几方面解决问题?2.HBase个别请求为什么很慢?你认为是什么原因?3.客户端读写请求为什么大量出错?该从哪方面来分析?4.大量服务端excep ...

  9. hive与hbase集成

    http://blog.csdn.net/vah101/article/details/22597341 这篇文章最初是基于介绍HIVE-705.这个功能允许Hive QL命令访问HBase表,进行读 ...

随机推荐

  1. SCOI2015题解 && 考试小结

    Day1: 第一题:裸地二分+网络流:二分答案,连接将每行每列拆成点,对于满足答案的格子行列连边,看是否流量是否大于t即可,可惜第k大看成了第k小,然后100分就没了. 第二题:倍增,考虑贪心算法,就 ...

  2. jquery之ajaxfileupload异步上传插件

    点我下载工程代码由于项目需求,在处理文件上传时需要使用到文件的异步上传.这里使用Jquery Ajax File Uploader这个组件下载地址:http://www.phpletter.com/d ...

  3. 关于entity framework

    http://www.cnblogs.com/lsxqw2004/archive/2009/05/31/1495240.html http://www.open-open.com/lib/view/o ...

  4. Gartner 如何看 RASP 和 WAF?

    在这个计算机网络飞速发展的网络时代里,新兴的网络威胁正在不断「侵蚀」着的应用程序和核心数据的安全,各种繁杂的防护手段也随之接踵而来.众所周知,Gartner 是全球最具权威的 IT 研究与顾问咨询公司 ...

  5. POJ 2528 Mayor's posters(线段树)

    点我看题目 题意 :建一堵墙粘贴海报,每个候选人只能贴一张海报,海报的高度与墙一样高,一张海报的宽度是整数个单位,墙被划分为若干个部分,每个部分的宽度为一个单位,每张海报完全的覆盖一段连续的墙体,墙体 ...

  6. Linux守护进程daemon

      守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常常在系统引导装入时启 ...

  7. IBinder类的中文翻译

    远程对象的基础接口,是一个为了在执行进程中和进程间调用时的高性能,而设计的轻量级远程调用机制的核心部分.这个接口描述了和远程对象交互的抽象协议.不要直接实现这个接口,而是通过继承Binder来实现. ...

  8. Android 解决安装Egit时Egit Mylyn和org.eclipse.team.core报错

    为了让Aptana支持GitHub,需要安装Egit,但在的时候碰到两个错误,一个是关于缺少EGit Mylyn另一个是缺少org.eclipse.egit.import.feature.group. ...

  9. Centos6.4 为用户添加sudo功能

    sudo即super user do,以超级管理员的方式运行命令.使用时,只需在命令最前面加上sudo即可. 要为用户添加sudo功能,需要修改sudo的配置文件: vi /etc/sudoers ( ...

  10. Bzoj 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐 二分

    1609: [Usaco2008 Feb]Eating Together麻烦的聚餐 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1272  Solve ...