HBase简介

是一个构建在HDFS上的分布式列存储系统;
HBase是基于Google BigTable模型开发的,典型的key/value系统;
HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;
从逻辑上讲,HBase将数据按照表、行和列进行存储。
与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

Hbase表的特点
大:一个表可以有数十亿行,上百万列;
无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;
面向列:面向列(族)的存储和权限控制,列(族)独立检索;
稀疏:空(null)列并不占用存储空间,表可以设计的非常稀疏;
数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
数据类型单一:Hbase中的数据都是字符串,没有类型。

Hbase基本概念

RowKey:是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要。
Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加
Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
Value(Cell):Byte array

Hbase物理模型

每个column family存储在HDFS上的一个单独文件中,空值不会被保存。
Key 和 Version number在每个 column family中均有一份;
HBase 为每个值维护了多级索引,即:<key, column family, column name, timestamp>
物理存储:
1、Table中所有行都按照row key的字典序排列;
2、Table在行的方向上分割为多个Region;
3、Region按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,之后会有越来越多的region;
4、Region是Hbase中分布式存储和负载均衡的最小单元,不同Region分布到不同RegionServer上

5、Region虽然是分布式存储的最小单元,但并不是存储的最小单元。Region由一个或者多个Store组成,每个store保存一个columns family;每个Strore又由一个memStore和0至多个StoreFile组成,StoreFile包含HFile;memStore存储在内存中,StoreFile存储在HDFS上

HBase架构及基本组件

1.Client:包含访问HBase的接口,并维护cache来加快对HBase的访问,比如region的位置信息

2.Master:

为Region server分配region

负责Region server的负载均衡

发现失效的Region server并重新分配其上的region

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

3.Region Server

Regionserver维护region,处理对这些region的IO请求

Regionserver负责切分在运行过程中变得过大的region

4.Zookeeper作用

通过选举,保证任何时候,集群中只有一个master,Master与RegionServers 启动时会向ZooKeeper注册

存贮所有Region的寻址入口

实时监控Region server的上线和下线信息。并实时通知给Master

存储HBase的schema和table元数据

默认情况下,HBase 管理ZooKeeper 实例,比如, 启动或者停止ZooKeeper

Zookeeper的引入使得Master不再是单点故障

Write-Ahead-Log(WAL)

该机制用于数据的容错和恢复:

每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中,HLog文件定期会滚动出新的,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知到,HMaster首先会处理遗留的 HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应region的目录下,然后再将失效的region重新分配,领取 到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复

HBase容错性
Master容错:Zookeeper重新选择一个新的Master
  无Master过程中,数据读取仍照常进行;
  无master过程中,region切分、负载均衡等无法进行;
RegionServer容错:定时向Zookeeper汇报心跳,如果一旦时间内未出现心跳,Master将该RegionServer上的Region重新分配到其他RegionServer上,失效服务器上“预写”日志由主服务器进行分割并派送给新的RegionServer
Zookeeper容错:Zookeeper是一个可靠地服务,一般配置3或5个Zookeeper实例

Region定位流程:

寻找RegionServer
ZooKeeper--> -ROOT-(单Region)--> .META.--> 用户表

-ROOT-
  表包含.META.表所在的region列表,该表只会有一个Region;
  Zookeeper中记录了-ROOT-表的location。

.META.
  表包含所有的用户空间region列表,以及RegionServer的服务器地址。

Hbase使用场景

 

温馨提示:英文版更有味道喽

storing large amounts  of data(100s of TBs)
need high write throughput
need efficient random access(key lookups) within large data sets
need to scale gracefully with data
for structured and semi-structured data
don't need fullRDMS capabilities(cross row/cross table transaction, joins,etc.)
大数据量存储,大数据量高并发操作

需要对数据随机读写操作

读写访问均是非常简单的操作

Hbase与HDFS对比

两者都具有良好的容错性和扩展性,都可以扩展到成百上千个节点;
HDFS适合批处理场景 不支持数据随机查找 不适合增量数据处理 不支持数据更新

转载于:https://www.cnblogs.com/szss/p/9934822.html

[Hbase]Hbase知识大全相关推荐

  1. HBase核心知识和应用案例

    Hbase 热点问题? Hbase 预分区 Hbase Rowkey 设计原则 Hbase 常见避免热点问题方法 Hbase 总结 Hbase 连续查询的Rowkey设计 Hbase 随机查询的Row ...

  2. 计算机基础知识整理大全_【干货整理】高中文言文基础知识大全,速度收藏!...

    今天和大家分享的是 高中文言文基础知识大全 高中文言文基础知识大全 文言文是以古汉语文雅的口语为基础的书面形式,在远古时代文言文与平常的口语的差异微乎其微.现今文言文是中国古代的一种书面语言组成的文章 ...

  3. 磁盘加密软件TrueCrypt知识大全(二)之创建文件型加密卷

    磁盘加密软件TrueCrypt知识大全(二)之创建文件型加密卷 1.在"TrueCrypt"窗口中选择"创建加密卷(C)"按钮,在向导中选择"创建文件 ...

  4. 磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备

    磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备 1.点击创建加密卷. 2.↑选择第2个,加密非系统分区/设备.第一个是通过创建文件的方式创建加密卷,由于文件容易误删除.丢失.破坏. ...

  5. Python学习--最完整的基础知识大全

    ##Python学习–最完整的基础知识大全 关于python的基础知识学习,网上有很多资料,今天我就把我收藏的整理一下分享给大家! #####菜鸟教程python2 #####菜鸟教程python3 ...

  6. java 链接为分布式 hbase,hbase学习记录(一):hbase伪分布式安装

    将安装包解压缩到/usr/local下,并将文件夹重命名为hbase tar -xvf hbase-1.2.6-bin.tar.gz -C /usr/local #解压缩到/usr/local文件夹 ...

  7. 计算机基础知识整理大全_知识大全 | 物理选修35quot;波粒二象性quot;

    图图说: 作为高中课程学习的常备工具书,本丛书以新考试大纲和课程标准为依据,参照新课标各版本教材编写而成,包括新课标各版本教材必修和选修的知识点,并对知识点进行了详细讲解与说明,同时以高考真题诠释对知 ...

  8. java(5)---Java基础知识大全

    Java基础知识大全 一.基础知识:  1.JVM.JRE和JDK的区别:  JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.  java语言是跨平 ...

  9. MTK 驱动(4)---MTK Android Driver知识大全

    MTK Android Driver知识大全 一.Display 1.lcm 相关概念 1.1) MIPI接口:一共有三种接口:DBI(也做CPU或MCU接口).DPI(也叫RGB接口).DSI. 在 ...

  10. [hbase]Hbase 在HDFS上的目录树结构

    自从学习了HDFS之后,再学习HBASE之后,我了解到HBASE是架设在HDFS上的,数据存储在HDFS上,哪HBASE在HDFS上的目录树是怎样的呢? 一.0.94-cdh4.2.1版本 系统级别的 ...

最新文章

  1. linux程序移植到vxworks,VxWorks入门(一):VxWorks Vs Linux
  2. PHP下使用FPDF在PDF中插入图片
  3. java发送c语言结构体_C语言中结构体直接赋值?
  4. 使用ESP定律_手工脱壳
  5. mybatis分页的一种解决方案
  6. word排版插件_8款堪称神器的Office插件,让你工作效率直线飙升!
  7. 【零基础学Java】—网络编程(五十三)
  8. dp------最长公共子序列问题
  9. 2D Fast Marching Computations
  10. mysqli得到记录数量
  11. gulpsass安装配置
  12. Delphi之TStrings和TStringLists类[转]
  13. wordpress配置HTTPS遇到问题解决方案
  14. 一文让你理清导数、方向导数、梯度向量之间的关系~
  15. 什么是失血模型和充血模型?(DDD)
  16. discuz上传图片html,Discuz编辑器H5上传
  17. PAKDD 2021 智能运维算法赛技术分享(精彩直播回放)
  18. Word中在囗中打勾或打叉的方法介绍
  19. b站尚硅谷springmvc学习视频:springmvc文档
  20. 缺点 霍夫圆_霍夫圆变换

热门文章

  1. 并发编程学习之线程池
  2. URL任何获取html form的提交值
  3. 基于 HTML5 WebGL 的 3D 工控裙房系统 1
  4. iOS7以上: 实现如“日历”的 NavigationBar
  5. 升级Windows 2003域的唯一DC
  6. Android应用程序层的作用,Android应用程序框架-004.bean层
  7. Java ClassLoader基础及加载不同依赖 Jar 中的公共类
  8. 后台管理项目系列-(一)--基本的项目搭建
  9. could not connect to smtp host java_服务器发送邮件出现Could not connect to SMTP host错误 解决办法...
  10. 怎么写c++ documentation_球鞋鞋标怎么看真假、有几种 耐克鞋标鉴定方法推荐