HBase基础知识,面向列的实时分布式数据库

Hbase是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,也就是说HBase能够利用HDFS的分布式处理模式,并从Hadoop的MapReduce程序模型中获益。

1、HBase定义

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

2、HBase特性:

  • 高可靠性
  • 高效性
  • 面向列
  • 可伸缩
  • 可在廉价PC Server搭建大规模结构化存储集群

3、HBase与RDBMS的对比

HBase适合于非结构化数据存储的数据库。介于Map Entry 和 DB row之间的一种数据存储方式。而RDBMS是一个遵循“Codd的十二条规律”的数据库。主要区别如下:

数据类型: HBase只有简单的字符串类型,它只保存字符串所有的类型都是交给用户自己处理。关系型数据库可以选择类型

数据操作: HBase操作只有很简单的插入、查询等操作,表与表之间是分离的,没有join

存储模式: HBase基于列存储,每个列族由几个文件保存,不同列族的文件是分离的。传统的关系数据库是基于表格结构和行模式保存的

数据维护: HBase更新操作时,旧的版本仍然保留,实际上时插入了新数据。传统关系数据库是替换修改

可伸缩性: HBase能够容易的增加或者减少硬件数量

4、数据模型

组成部件说明:

Row Key:Table主键行键Table中记录按照Row Key排序;

Timestamp:每次对数据操作对应的时间戳,也即数据的version number;

Column Family: 列簇,一个table在水平方向有一个或者多个列簇,列簇可由任意多个Column组成,列簇支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换。

5、系统架构

组成部件说明

Client:
使用HBase RPC机制与HMaster和HRegionServer进行通信
Client与HMaster进行通信进行管理类操作
Client与HRegionServer进行数据读写类操作 

Zookeeper:
Zookeeper Quorum存储-ROOT-表地址、HMaster地址
HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况
Zookeeper避免HMaster单点问题

HMaster:
HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行
主要负责Table和Region的管理工作:
1 管理用户对表的增删改查操作
2 管理HRegionServer的负载均衡,调整Region分布
3 Region Split后,负责新Region的分布
4 在HRegionServer停机后,负责失效HRegionServer上Region迁移

HRegionServer:
HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据

6、表的设计

在表结构设计时,HBase里有tall narrow和flat wide两种设计模式,前者行多列少,整个表结构高且窄;后者行少列多,表结构平且宽;但是由于HBase只能在行的边界做split,因此如果选择flat wide的结构,那么在特殊行变的超级大(超过file或region的上限)时,那么这种行为会导致compaction,而这样做是要把row读内存的~~因此,强烈推荐使用tall narrow模式设计表结构,这样结构更趋近于keyvalue,性能更好。

本文参考hbase.apache 转载请注明转载自慧都控件网

时间: 2024-10-21 05:24:30

HBase基础知识,面向列的实时分布式数据库的相关文章

HBase基础知识

1.HBase简介 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群.HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具. 2.HBase(NoSQL)的数据模型 2.1 表(table),是存储管理数据的.2.2 行键(row key),类似于MySQL中的主键.

Hadoop第11周练习—HBase基础知识

1 书面作业1:数据即日志... 3 1.1     书面作业1内容... 3 1.2     回答... 3 2 书面作业2:HBase合并过程... 3 2.1     书面作业2内容... 3 2.2     回答... 4 3 书面作业3:HBase一致性... 4 3.1     书面作业3内容... 4 3.2    回答... 4 1 书面作业1:数据即日志 1.1 书面作业1内容 我们常说HBase是“数据即日志”的数据库,它是怎样修改和删除数据的?和Oracle这类传统的RDB

hbase基础知识一

1. hbase是什么 漫画学习hbase----最易懂的Hbase架构原理解析 http://developer.51cto.com/art/201904/595698.htm 1.1 hbase的概念 hbase基于Google的BigTable论文,是建立的hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实时读写的分布式数据库系统.在需要实时读写随机访问超大规模数据集时,可以使用hbase. 1.2 hbase的特点 海量存储 可以存储大批量的数据 列式存储 hbase表的数据是基于列

【基础知识】列一下一个.Net WEB程序员需要掌握的知识

基础部分 C# 基础语法 OOP的概念,面向对象的理解 继承 封装 多态 ASP.NET MVC (Web Form 用的越来越少,如果你不熟悉,可以不看) JavaScript 基础语法 如何在HTML里使用JavaScript 常用Dom 操作 SQL Server 常用T-SQL 增删改查 SQL Managment studio 常用操作 jQuery 常用API HTML HTML 所有标签的语义,什么时候用什么标签 CSS 常用CSS的知识,如何在HTML使用 常用的布局 Boots

数据库基础知识(1)--数据库php连接

关系数据库的常用基本术语  数据data 数据库database 数据库管理系统dbms 表(数据表)table 字段field,列column 行row,记录record 数据库操作的基本模式(流程) 建立连接(认证身份) 客户端向服务器端发送sql命令 服务器端执行命令,并返回执行的结果 客户端接收结果(并显示) 断开连接 <?php//1,连接数据库:$mylink = mysql_connect("localhost", 'root', '');//连接到数据库//2,设

Java基础知识—发送Emai和访问MySQL数据库(七)

概述 Java程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) .Java访问数据则需要 使用JDBC 连接 MySQL 数据库.JDBC起到数据库驱动作用. E-Mail的发送 第三方包的下载地址方式,加载之后在对应的项目中导入该库文件. 访问 JavaMail 官网下载最新Jar文件: 访问 JAF(版本 1.1.1)官网下载最新JAR文件: 以下是下载之后,编写测试代码,能够借助网易

Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型

Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', '列名称1','列名称2','列名称N' 添加记录 put '表名称', '行名称', '列名称:', '值' 查看记录 get '表名称', '行名称' 查看表中的记录总数 count  '表名称' 删除记录 delete  '表名' ,'行名称' , '列名称' 删除一张表 先要屏蔽该表,才能对

面向列的分布式数据库Hbase简介

Hbase 是一个面向列的分布式数据库.Hbase不是一个关系型数据库,其设计目标是用来解决关系型数据库在海量数据处理中理论和实现的不足和局限.传统的关系型数据库上世纪七八十年代为交易系统建立 ,以满足数据一致性(ACID)为目标,并没有考虑数据规模扩大时的拓展性,和单点系统失效时的可靠性.虽然经过技术的发展,实现了对关系数据库的弥补(并行数据库),但由于理论和实现的约束,拓展从来没超过40个节点的服务器.而Hbase从一开始就为TB和PB级别的海量数据的高速存储而设计,这要求数据能够被分配在数

Hbase学习笔记(安装和基础知识及操作)

1.Hbase简介 1.面向列的分布式数据库 2. 以HDFS作为文件系统 3. 利用MapReduce处理Hbase中海量数据 4. ZookKeeper作为协调工具 5. sqoop提供Hbase到关系型数据库中数据导入功能 6. Hive和pig提供高层语言支持如HSQL 2. 伪分布式安装 准备: 安装Hadoop 详细见上一篇日志: hadoop分布式安装 hbase版本: hbase-0.94.7-security.tar.gz 安装目录 /usr/local 步骤: 1.  安装