HBase简单介绍

前言

本周学习了部分关于Hadoop生态圈周边的一些系统,简单的做个小结,本篇文章主要讲的是HBase的介绍。HBase是一个在HDFS上构建的面向列的分布式数据库,他与传统的RDBMS还是有许多的不同之处的。HBase的出现可以解决海量数据存储的问题,而且他可以比较容易的解决伸缩性的问题,这个在以往的传统关系型数据库中都是很大的难题。下面是简单的对于HBase的介绍。

HBase介绍

先说说我的个人感受,当我第一次看到HBase是一个面向列式的存储结构时,我立马想到了Google的BigTable,因为他也是面向列式存储的,然后里面同样有列簇的概念,也是属于稀疏存储。所以如果你了解了BigTable相信理解HBase也不会太难。

HBase系统结构

这个当然用图形的方式表现呢出来最直观。

撇开图片下方的Hadoop的部分,上一部分才是HBase的结构,因为HBase所存储的数据是在Hadoop的HDFS中,所以会有所关联。简单的来说,HBase也遵循主从关系,即一个master,然后好多个slave。在这里是一个master节点控制着若干个HRegionServer节点,然后在每个HRegionServer下又会控制到好多个HRegion。HRegion才是真正存储数据的地方。然后这期间会由Zookeeper控制协调中间的服务。

HBase的面向列的存储

HBase的面向列的存储特性是他的一大特点,这样就可以真正做到宽度的效果,列可以做到很多,同样给出一个示例图,在此示例图中,有3个列簇。

其实在真实的存储中,空余的部分其实是不占空间的,只是效果图这么画而已。

HBase和RDBMS的比较

传统的RDBMS历经了了几十年的发展,已经形成了许多成熟的特性,而且各方面已经成熟化了,比如MySQL这样的。但是如果在数据并发读写和数据规模这2方面,传统的关系型数据库可能就会比较吃紧了。而HBase要做的事情恰恰在于此。因为HBase本身是一个分布式的数据库系统,所以可以让使用者专注于业务上的处理逻辑,中间的数据传输全部都被HBase抽象处理了。而且HBase支持自动分区,当表增长到一定阈值 ,他可以将一个HRegion分裂为2个HRegion。而且HBase可以实现简单的扩展,通过增加节点数来进行线性的扩展。

在使用HBase时可能会碰到的问题

1、第一个问题是可能会碰到文件描述符用完的情况。因为在HBase中,数据文件在启动 时就被打开,并在处理过程中始终保持打开状态,以便节省每次访问操作打开文件所需的代价,所以适当的时候可以增加最大文件描述符数量的限制。

2、datanode的线程用完的情况。默认情况下Hadoop的datanode上最大只能容纳256个线程运行,而在datanode中打开每个文件连接都会使用一个线程,所以256个线程的限制很快就会达到。可以把dfs.datanode.max.xciervers的值调高,并重启集群。

参考资料:<<Hadoop权威指南>>.Tom.White

时间: 2024-08-03 19:01:01

HBase简单介绍的相关文章

HDFS简单介绍及用C语言訪问HDFS接口操作实践

一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System.HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分布

Cloudera impala简单介绍及安装具体解释

一.Impala简单介绍 Cloudera Impala对你存储在Apache Hadoop在HDFS,HBase的数据提供直接查询互动的SQL.除了像Hive使用同样的统一存储平台,Impala也使用同样的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax).Impala还提供了一个熟悉的面向批量或实时查询和统一平台. 二.Impala安装 1.安装要求 (1)软件要求 Red Hat Enterprise Linux (RHEL)/CentOS 6.2

Python常用的库简单介绍一下

Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构建格式化的输出. difflib ,[Python]标准库,计算文本差异 . Levenshtein ,快速计算字符串相似度. Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. shortuuid ,一组简洁URL/UUID函数库. ftfy ,Uni

小记--------hbase数据库介绍及存储方式

一.Hbase基本原理 1.hbase基本介绍 HBASE是一个分布式的,面向列的开源数据库.Hbase的存储是基于hadoop的.因为Hadoop实现了一个分布式文件系统(HDFS),基于hadoop意味着hbase与生俱来的超强的扩展性和吞吐量,hbase采用的是key.value的存储方式.意味着即使随着数据量增大,也几乎不会导致查询的性能下降. 2.hbase存储方式 hbase将数据按列簇分别存储,而并非简单的列式存储:首先了解几个概念:行式存储.列式存储.列簇式存储. A.行式存储:

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通

javascript的return语句简单介绍

javascript的return语句简单介绍:return语句在js中非常的重要,不仅仅具有返回函数值的功能,还具有一些特殊的用法,有个清晰的把握是非常有必要的.下面就结合实例简单介绍一下return语句的作用.一.用来返回控制和函数结果:通常情况,return语句对于一个函数是很有必要的,因为往往需要函数在一系列的代码执行后会得到一个期望的返回值,而此值就是通过return语句返回,并且将控制权返回给主调函数.语法格式: return 表达式 代码实例如下: function add(){

Object-c集合的简单介绍

一.简单介绍 NSArray/NSMutableArray NSSet/NSMutableSet NSDictionary/NSMutableDictionary NSArray.NSSet.NSDictionary是不可变的,创建的时候初始化 NSMutableArray.NSMutableSet.NSMutableDictionary是可变的 二.使用介绍 NSArray是有序的数组 NSMutableArray *myArray=[[NSMutableArray alloc] init];

plsql的环境与介绍:环境的搭建和plsql的简单介绍

PLSQL编程 1.环境的搭建 (1)创建一个存储表空间 SQL> conn /as sysdbaConnected. SQL> create tablespace plsql datafile '/u01/oracle/oradata/ORCL/plsql01.dbf' size 1G; Tablespace created. (2)创建PLSQL用户SQL> create user plsql identified by plsql default tablespace plsql;

CSS之box-sizing的用处简单介绍

前几天才发现有 box-sizing 这么个样式属性,研究了一番感觉很有意思, 通过指定容器的盒子模型类型,达到不同的展示效果 例如:当一个容器宽度定义为 width:100%;  之后,如果再增加 padding 或者 border 则会溢出父容器,是向外扩张的 如果使用该样式,指定为 box-sizing: border-box; 则 padding 和 border 就不会再溢出,而是向内收缩的,这个效果感觉非常实用, 特别是 input 和 textarea 等 现在设置 100% 再直