为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

分布式存储系统HBase 原理解析

2012-07-03 8页 pdf 468KB 51阅读

用户头像

is_844204

暂无简介

举报
分布式存储系统HBase 原理解析 http://www.paper.edu.cn - 1 - 中国科技论文在线 分布式存储系统 HBase 原理解析 郝树魁* 作者简介:郝树魁(1986),男,无职称,计算机应用技术. E-mail: haosk86@yahoo.com.cn (北京邮电大学信息与通信工程学院,北京 100876) 摘要:随着数据量的膨胀和计算机硬件价格的下降,快速处理海量数据的需求促使了分布...
分布式存储系统HBase 原理解析
http://www.paper.edu.cn - 1 - 中国科技在线 分布式存储系统 HBase 原理解析 郝树魁* 作者简介:郝树魁(1986),男,无职称,计算机应用技术. E-mail: haosk86@yahoo.com.cn (北京邮电大学信息与通信工程学院,北京 100876) 摘要:随着数据量的膨胀和计算机硬件价格的下降,快速处理海量数据的需求促使了分布式 计算的兴起和发展。Hadoop除了提供分布式文件系统和支持MapReduce的计算框架,还在 这一计算框架上提供了可扩展的结构化数据的分布式存储系统 HBase 等。本文在简要介绍 HDFS 体系结构和 MapReduce 逻辑数据流的基础上,解析了分布式存储系统 HBase 的原理 并对分布式存储系统的未来发展做出展望。 关键词: 分布式计算,分布式存储,HBase,Hadoop,HDFS,MapReduce 中图分类号:TP392 Analysis of HBase Distributed Storage System Hao Shu Kui (School of Information and Communications Engineering, Beijing University of Posts and Telecommunications, Beijing 100876) Abstract: With the expansion of the amount of data and computer hardware prices fall, the needs of rapid processing mass data is prompting the development the distributed computing. The Hadoop framework provides distributed file system and supports MapReduce calculation, besides the extensibility of distributed storage system for structured data HBase. On the basis of giving the architecture of HDFS and the logical data streams of MapReduce, this paper briefly introduces the principle of HBase distributed storage system and proposes the future development of distributed storage system. Key words: Distributed computing;Distributed storage;HBase;Hadoop;HDFS;MapReduce 0 引言 我们生活在一个数据爆炸的时代,并且每天都会新增巨大的数据,例如来自互联网、传 媒和科学实验数据等。来自互联网数据中心(IDC)的报告,“数字地球”的数据量已经达到 Zattebytes的数量级。(其中 1ZB = 1012byte)。对于电子商务、科学计算等行业来说,合理的 存储和管理海量数据,并且从中提取数据的价值显得尤为重要。 1 数据存储和 随着数据的膨胀,使用传统的磁盘和 RDBMS(关系数据库管理系统)面临着越来越多 的挑战。得益计算机硬件的发展,磁盘造价迅速下降的同时磁盘容量变的越来越大。同时, 磁盘容量的变大提升存储量的同时也带来了一个问,即磁盘寻址的时间通常远大于磁盘读 取数据的时间。并且,磁盘寻址性能的提升速度要慢于读取数据性能提高的速度。RDBMS 适用于点查询和更新,对于提供索引的数据集提供低延迟的检索和更新小数据量的数据。 RDBMS管理符合预定于的 Scheme的特定格式的结构化数据。但对于非结构化半结构化数 据,松散的数据,RDBMS并不高效。 http://www.paper.edu.cn - 2 - 中国科技论文在线 2 技术创新 Google公司三篇云计算的经典论文改变了人们处理海量数据的思索方式:即 BigTable-- 一个分布式的结构化数据存储系统;The Google File System;Google MapReduce。它们对 Hadoop的发展起到了很大启发作用。谈到 Hadoop,就不得不提到 Lucene和 Notch。Lucene 不是一个应用程序,而是提供一个纯 Java的高性能全文索引引擎工具包,它可以方便的嵌 入到各种实际应用中来实现全文索引/搜索功能。Nutch是一个应用程序,是一个以 Lucene 为基础实现的搜索引擎应用,Lucene为 Nutch提供文本索引和搜索的 API,Nutch不仅有搜 索功能,还有数据抓起的功能。在 Nutch0.8.0版本之前,Hadoop还属于 Nutch的一部分, 而从 Nutch0.8.0版本开始,将其中实现的 NDFS和MapReduce剥离出来成立了一个新的 Apache开源项目,这就是 Hadoop。Nutch0.8.0版本较之前的 Nutch在架构上有了根本性的 变化,那就是完全构建在Hadoop基础之上。[1]在 Hadoop中实现了Google的GFS(Google File System)、MapReduce和 BigTable算法,并相应的取名为 HDFS、MapReduce和 HBase,使 Hadoop成为了一个分布式的计算平台。 其实,Hadoop并不仅仅是一个用于存储的分布式文件系统,而是用来在由通用计 算设备组成的大型集群上执行分布式应用的框架。Apache的 Hadoop的项目中包含了下列产 品,如图所示: 表 1 Hadoop基本组成 Pig是在MapReduce上构建的查询语言,适用于大量并行计算。Chukwa是基于 Hadoop 集群中监控系统,简单来说就是一个“看门狗”(WatchDog)。Hive是 DataWareHouse 和 MapReduce交集,适用于 ETL方面的工作。[2]HBase是一个面向列的分布式存储系统。 MapReduce是 Google提出的一种算法,用于超大型数据集的并行运算。HDFS可以支持千 万级的大型分布式文件系统。Zookeeper提供的功能包括:配置维护、名字服务、分布式同 步、组服务等,用于分布式系统的可靠协调系统。Avro是一个数据序列化系统,设计用于 支持大批量数据交换的应用。 3 Hadoop的主要两个部分:HDFS和MapReduce 3.1 HDFS HDFS即 Hadoop Distributed File System(Hadoop分布式文件系统)。HDFS是 GFS的开 源实现。HDFS很适合大数据集的应用,并且提供了对数据读写的高吞吐率。HDFS是以流 式数据访问模式存储超大文件而设计的文件系统,在商用硬件的集群上运行。 http://www.paper.edu.cn - 3 - 中国科技论文在线 图 2 HDFS体系结构 HDFS是一个 master/slave结构的文件系统,HDFS集群有两种节点,以管理者-工作者 的模式运行,即一个 NameNode(命名节点)和多个 DataNode(数据节点)。NameNode管理文 件系统的命名空间。它维护着这个文件系统树及这个树内所有的文件和索引目录。客户端通 过与 NameNode和 DataNode交互来访问整个文件系统。 3.2 MapReduce MapReduce是一种用于数据处理的编程模型,是 Google MapReduce的开源实现。 MapReduce程序本质上是一种简化并行计算的编程模型,所以其优势在于处理大型数据集。 MapReduce的工作过程分为两个阶段:map阶段和 reduce阶段。 http://www.paper.edu.cn - 4 - 中国科技论文在线 图 3 MapReduce的逻辑数据流 每个阶段都有键/值对作为输入和输出,简单说来,map阶段把一组键/值对映射为另一 个键/值对,其映射的规则由 map函数来指定。Reduce阶段是把一组键/值对进行归约,这个 归约的规则由 reduce函数指定。客户端启动的MapReduce应用程序成为 JobTracker。类似 于NameNode,它是Hadoop集群中唯一负责控制MapReduce应用程序的系统。JobTracker 使 用文件块信息确定如何创建和管理 TaskTracker,为每个 DataNode创建唯一的 TaskTracker。 每个 TaskTracker 将状态和任务进度报告回传给 JobTracker。[3] 4 HBase 4.1 HBase简介 HBase是 Apache的 Hadoop项目的子项目。HBase是一个开源的、分布式的、面向列的 存储系统,该技术来源于 Google的论文:“BigTable--一个分布式的结构化数据存储系统”。 HBase是 Google BigTable的开源实现。就像 BigTable利用了 GFS所提供的分布式数据存储 一样,HBase在 Hadoop平台上提供了类似于 BigTable的能力,依托 HDFS作为最基本存储 基本单元,通过使用 Hadoop的 DFS工具可以查看这些数据及其存储结构,还可以通过 MapReduce对 HBase进行操作。如图所示: http://www.paper.edu.cn - 5 - 中国科技论文在线 图 4 HBase于 HDFS、MapReduce HBase的需求起源于需要一个类似于 BigTable的数据存储系统来保存Web表格,一个 存放Web文档及其以 URL作为关键字的属性宽泛的表。HBase不同于传统的关系数据库, 它是适合于非结构化数据存储的数据库。所谓非结构化数据存储就是说 HBase是基于列的 而不是基于行的模式。这里简要介绍一下列存储。基于列存储的数据库中的数据表的每列单 独存放;数据即使索引;查询时只访问涉及的列,大量降低系统 I/O;每列可以由一个线程 来处理,支持了查询时的并发处理。 HBase是介于Map Entry(key & value)和 DB Row之间的一种数据存储方式。不仅是一个 key对应一个 value,还可能需要存储多个属性的数据结构,但没有传统数据库表中那么多 的关联关系,即所谓松散数据。简单来说,HBase中创建的表的属性可以根据需求去动态增 加,在 HBase中没有表与表之间关联查询。Apache HBase的一个数据行拥有一个可选择的 键和任意数量的列。表是疏松存储的,因此用户可以给行定义各种不同的列,这样的功能在 实际中很实用。[4] HBase表中存储的行记录有三个基本类型的定义:Row Key,Time Stamp,Column。Row Key是行在 HBase中的唯一标识,Time Stamp是每次数据操作对应关联的时间戳,可以看 作类似于版本信息,Column定义为::
/
本文档为【分布式存储系统HBase 原理解析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索