当前位置: 查字典论文网 >> 云计算平台Hadoop

云计算平台Hadoop

格式:DOC 上传日期:2023-03-11 00:29:11
云计算平台Hadoop
时间:2023-03-11 00:29:11     小编:

【摘 要】云计算是目前最热门的研究课题之一,发展云计算平台的技术也多种多样,文章介绍云计算平台Hadoop。说明Hadoop的起源、发展现状及Hadoop体系架构,简要分析Hadoop的行业应用案例。

【关键词】Hadoop;GFS;大数据

一、Hadoop来源和动机

Hadoop是Apache软件基金会旗下的一个开源软件平台,一个以Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce(Google MapReduce的开源实现)为核心的分布式系统基础架构,主要用于对海量数据进行高效的存储、管理和分析。HDFS的高容错性、高伸缩性等优点让用户可以在价格低廉的硬件上部署Hadoop,形成分布式系统。MapReduce让用户可以在不了解分布式底层细节的情况下,开发分布式程序,并可以充分利用集群的威力高速运算和存储。

二、Hadoop与分布式开发

Hadoop则是属于分布式软件系统中文件系统这一层的软件,它实现了分布式文件系统和部分分布式数据库的功能。Hadoop中的分布式文件系统HDFS能够实现数据在计算机集群组成的云上高效的存储和管理,Hadoop中的并行编程框架MapReduce能够让用户编写的Hadoop并行应用程序运行更加简化,这就让我们能够通过Hadoop进行相应的分布式开发。

要通过Hadoop进行开发,我们得先知道Hadoop数据的处理特点。Hadoop的优势在于大规模的分布式数据处理,而且所有的数据处理作业都是批处理的,所有要处理的数据都要求在本地,任务的处理是高延迟的,MapReduce的处理过程虽然是基于流式的,但是处理的数据并不是实时数据,也就是说Hadoop在实时性上并不占优势,显然,Hadoop不适合于开发WEB程序。

Hadoop上的并行应用程序开发是基于MapReduce编程框架的。我们并不需要考虑任务的具体分配是什么样的,只需要用户根据MapReduce提供的API编写特定的mapper与reducer函数就可以和机器交互,然后把任务交给系统就可以了。

三、Hadoop体系架构

Hadoop是一个能够对大数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多小的工作单元,并把这些单元放到任何集群节点上执行。在MapReduce中,一个准备提交执行的应用程序成为“作业job”,而从一个作业换分出的、运行于个计算节点的工作单元成为“任务task”。此外,Hadoop提供的分布式文件系统HDFS主要负责各个节点上的数据的存储,并实现了高吞吐率的数据读写。Hadoop的基本架构如图1所示,由实现数据分析的MapReduce计算框架和实现数据存储的分布式文件系统HDFS组成。

MapReduce的主要吸引力在于:它支持使用廉价的计算机集群对规模达到PB级的数据集进行分布式并行计算,是一种编程模型。它由Map函数和Reduce函数构成,分别任务的分解与结果的汇总。MapReduce的用途是进行批量处理,而不是进行实时查询,即特别不适用于交互式应用。

HDFS的数据读写具有“一次写,多次读”的特征,HDFS保证一个文件在一个时刻只被一个调用者执行写操作,而可以被多个调用者执行读操作。HDFS具有高容错性,可以部署在低廉的硬件上,并且提供了对数据读写的高吞吐率。HDFS为分布式计算存储提供了底层支持,HDFS与MapReduce框架紧密结合,是完成分布式并行数据处理的典型案例。

目前,Hadoop已经发展成为包含很多项目的集合,形成了一个以Hadoop为中心的生态系统(Hadoop Ecosystem),如图2所示。此生态系统提供了互补性服务或在核心层上提供了更高层的服务,使Hadoop的应用更加方便快捷。

ETL Tools是指一系列数据仓库采集工具,是构建数据仓库的重要环节。

BI Reporting(Business Intelligence Reporting,商业智能报表)能提供综合报告,数据分析和数据集成等功能。

RDBMS是关系型数据库管理系统。RDBMS中的数据存储在被称为表(tables)的数据库对象中。表是相关的数据项的集合,它由列和行组成。

Pig是数据处理脚本,提供相应的数据流(Data Flow)语言和运行环境,实现数据转换(使用管道)和实验性研究(如快速原型),适用于数据准备阶段。Pig运行在MapReduce和HDFS的集群上。

Hive是基于平面文件而构建的分布式数据仓库,擅长数据展示,由Facebook贡献。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(有运行时的引擎翻译成MapReduce作业)用以查询数据,Hive和Pig都是建立在Hadoop之上的,可以用来从数据库中提取信息,交给Hadoop处理。

Sqoop是数据接口,完成HDFS和关系型数据库中的数据相互转移的工具。

Hbase是类似于Google BigTable的分布式列数据库。HBase和Avro于2010年5月成为顶级Apqche项目。Hbase支持MapReduce的并行计算和点查询(即随机读取)。Hbase是基于Java的产品,与其对应的基于C++的开源项目是Hypertable,也是Apache的项目。

Avro是一种新的数据序列化(serialization)格式与传输工具,将逐步取代Hadoop原有的IPC机制。

Zookeeper是分布式锁设施,用于构建分布式应用,提供类似Google Chubby的功能,它是基于Hbase和HDFS的,由Facebook贡献。

四、Hadoop行业应用案例分析

随着企业的数据量的迅速增长,存储和处理大规模数据已成为企业的迫切需求。Hadoop作为开源的云计算平台,已引起了学术界和企业的普遍兴趣。

关于Hadoop技术的研究和应用,Yahoo !始终处于领先地位,它将Hadoop应用于自己的各种产品中,包括数据分析、内容优化、反垃圾邮件系统、广告的优化选择、大数据处理和ETL等;同样,在用户兴趣预测、搜索排名、广告定位等方面得到了充分的应用。

在Yahoo!主页个性化方面,实时服务系统通过Apache从数据库中读取user到interest的映射,并且每隔5分钟生产环境中的Hadoop集群就会基于最新数据重新排列内容,每隔7分钟则在页面上更新内容。

在邮箱方面,Yahoo!利用Hadoop集群根据垃圾邮件模式为邮件计分,并且每隔几个小时就在集群上改进反垃圾邮件模型,集群系统每天还可以推动50亿次的邮件投递。

目前Hadoop最大的生产应用是Yahoo!的Search Webmap应用,它运行在超过10 000台机器的Linux系统集群里,Yahoo!的网页搜索查询使用的就是它产生的数据。

五、结语

本文介绍了Hadoop的起源及发展现状,分析Hadoop与分布式开发的关系。展开介绍了Hadoop的体系架构并就目前而言对Hadoop的商业应用案例进行分析。在今后的云计算热潮中Hadoop会有更多的发展,Hadoop的应用也会越来越广。

全文阅读已结束,如果需要下载本文请点击

下载此文档

相关推荐 更多