首页 理论教育 Hadoop平台简介

Hadoop平台简介

时间:2023-06-26 理论教育 版权反馈
【摘要】:Hadoop是由Apache开发的一个经典的分布式系统基础架构,起源于开源搜索引擎Apache Nutch,是目前最受关注、应用最广的开源分布式系统框架,已经形成了自己的生态体系。图6-1给出了Hadoop的生态图及构成其生态系统的组件。此外,Hadoop平台利用栅格空间数据开源库GDAL提供对多数栅格数据格式的读写及处理服务。图6-2所示为HBase的总体结构图,HBase由HMaster节点、HRegionServer节点和ZooKeeper集群组成。

Hadoop平台简介

Hadoop是由Apache开发的一个经典的分布式系统基础架构,起源于开源搜索引擎Apache Nutch,是目前最受关注、应用最广的开源分布式系统框架,已经形成了自己的生态体系。图6-1给出了Hadoop的生态图及构成其生态系统的组件。其中,分布式文件系统(Hadoop distributed file system,HDFS)和并行计算框架MapReduce构成了Hadoop的核心框架。其中,HDFS以流式模式访问应用程序的数据,是Hadoop解决海量数据存储和管理的基础;MapReduce是建立在HDFS基础上的分布式计算框架,为海量数据的并行计算提供了支持。构成Hadoop生态系统的其它组件中,Ambari负责监控Hadoop集群;HBase、Hive和Pig主要负责数据的存储和查询,其中,HBase是一个构建在HDFS之上的分布式列存储系统,用于存储海量结构化数据;Hive被用于大数据的数据仓库;Mahout是一个开源的机器学习库,提供了对大数据进行高效数据分析和数据挖掘的支持;Flume和Sqoop负责数据的导入/导出,如大数据的加载、日志聚合操作等;Zookeeper通过节点方式提供相互间的通信,可以独立于Hadoop平台运行。此外,Hadoop平台利用栅格空间数据开源库GDAL提供对多数栅格数据格式的读写及处理服务。

图6-1 Hadoop生态系统图[15]

Hadoop的优点主要包括:

(1)通过为数据处理提供存储、计算资源等高效化的管理工具,从而能够处理更多的任务;

(2)根据使用者的需求,提供可扩展为无限大的存储空间和计算资源的同时,能够更快地处理更多的数据;

(3)通过多个服务器间的协作,能够自动检测到服务器故障,实现无间断工作。

Hadoop允许在整个集群环境下使用简单编程模型计算机对大数据进行分布式存储和处理,具有高可靠性、高扩展性、高效性、高容错性等特性,已被成功应用于搜索引擎、电子商务证券交易电力网络、交通运输、搜索引擎等领域。越来越多的企业巨头和研究人员采用Hadoop来解决海量数据的存储和计算问题,例如阿里巴巴雅虎、Facebook等都构建了自己的Hadoop集群。

以下分别简要介绍HDFS、MapReduce、HBase和GDAL。

一、HDFS

HDFS是一个针对海量数据存储而开发的分布式文件系统,有很高的容错性和稳定性。一方面,HDFS建立在“一次写入、多次读取”的高效访问机制下,通过流式数据访问模式,可以提供高吞吐量应用程序数据访问服务,适合大规模数据集上的应用;另一方面,HDFS对计算机硬件的要求不高,可以部署在廉价和较低配置的硬件上,用耗费不高的硬件成本即可搭建一个集群实现海量数据的存储,便于系统扩展。

为了提高处理效率,HDFS将数据块(block)作为存储和处理数据的逻辑单元,数据块的默认大小为64M或者128M,支持用户自定义设置。数据块大小需要用户根据处理数据的实际情况进行合理的设置,这是因为:①数据块大小设置过小可能会造成一个文件被切分为过多数据块,增加了主节点中存储的元数据信息,消耗了主节点的存储空间;②数据块大小设置过大,则会导致分布式处理计算任务时,每个节点分到的数据过于庞大,从而影响数据的处理速度。此外,为了确保数据存储的可靠性,避免单个数据节点宕机时丢失数据,HDFS提供了数据块在集群内节点上的备份存储服务。

HDFS是典型的主从结构(Master-Slave结构)计算机集群,包含一个主节点(namenode)和多个从节点(datanode)。其中,主节点负责整个文件系统的管理,如HDFS中的文件信息和对应文件的元数据信息(包括用户权限、权限、日志记录、磁盘空间分配、文件的命名规则等),为集群间的数据通信提供服务接口;从节点是文件系统中实际存储数据的节点;每一个从节点上都存有唯一的数据块标识。(www.xing528.com)

二、MapReduce

MapReduce是基于HDFS的海量数据分布式处理计算框架,同样采用主从结构。MapReduce采用了“分而治之”的思想:首先将海量数据分片,然后分发到各个节点上进行并行计算,最后将结果汇总。

MapReduce框架的核心是映射(map)和合并(reduce)。映射是将由原始数据转化的键值对(key,value)经过运算后输出新键值对的过程;合并是将映射输出的新键值对根据键值进行合并的过程。MapReduce运行机制中还有另外两个重要组成部分:输入分片(input split)和优化洗牌(shuffle)。其中,输入分片是指在进行映射计算之前,MapReduce根据输入文件计算输入分片,每个输入分片对应一个映射任务;优化洗牌是MapReduce优化的关键步骤,将映射的输出作为合并的输入。

总之,MapReduce提供了一个简便的并行程序设计框架,通过Map和Reduce实现基本的并行计算任务;此外,MapReduce提供了抽象的操作和并行编程接口,基于MapReduce框架能够较为便捷地编写应用程序并运行在大集群上,从而以一种可靠和具有容错能力的方式并行处理TB级别以上的海量数据。与HDFS一样,MapReduce对计算机性能的要求也不高,可以通过大量廉价的计算机实现海量数据的快速运算,而且由于将数据分布存储、数据通信、容错处理等大量复杂计算交由系统处理,从而大大减少了软件开发人员的负担。

三、HBase

HBase是一个建立在HDFS之上的分布式列存储系统,用于存储海量结构化数据,同样采用主从结构。图6-2所示为HBase的总体结构图,HBase由HMaster节点、HRegionServer节点和ZooKeeper集群组成。HBase系统中,区域(region)是分布式存储和负载均衡的最小单元,不同区域分布到不同的区域服务器上。HRegionserver负责本地区域的存放、管理、读写等操作;HMaster负责区域的管理和分配、数据库的创建和删除、HRegionServer的负载均衡等;ZooKeeper集群负责存放HBase集群的元数据及状态信息。客户端(Client)为访问HBase的接口,进行数据读写时,首先从HMaster中获取元数据,找到对应的HRegionServer后,通过HRegionServer读写数据。

图6-2 HBase的总体结构图[1]

总之,Hbase提供了对物理上分散存储在HDFS之上数据的分布式管理,非常适合海量的小数据特征文件的存储和管理,具有高可靠性、高性能、高扩展性、便于迁移等特点,可实现低配置硬件环境下的大规模结构化存储集群的搭建。

四、GDAL

栅格空间数据开源库(geospatial data abstraction library,GDAL)是开源地理空间基金会发布的一套X/MIT许可协议下的开源栅格空间数据转换库,提供了对包括Arc/Info ASCII Grid(asc)、GeoTiff(tiff)、Erdas Imagine Images(img)、ASCII DEM(dem)等在内的多种栅格数据的支持。GDAL数据模型主要包括:数据集、坐标系统、仿射地理变换、地面控制点、元数据、波段信息以及颜色表。GDAL利用单一的抽象数据模型表达,支持多种栅格文件格式,可对支持的栅格格式进行读取、写入、转换和处理等操作。此外,GDAL具有很好的可移植性和可扩展性,支持JAVA、PERL、Python和.NET等语言,具有易扩展特性。

综上所述,Hadoop平台中HDFS的海量存储和管理数据的能力与MapReduce的计算能力相结合,辅之以GDAL强大的不同格式空间数据的支持,为大规模遥感图像数据分布式存储和管理提供了有力的技术支撑。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈