wwh1295的个人博客分享 http://blog.sciencenet.cn/u/wwh1295

博文

初识Hadoop

已有 7084 次阅读 2013-9-2 14:06 |系统分类:科研笔记|关键词:学者| 云计算, Hadoop, 分布式存储与计算

什么是Hadoop

Hadoop是由ASF(Apache SoftwareFoundation)源于Lucene的子项目Nutch所开发的开源分布式计算平台,可以构建具有高容错性、可伸缩性、低成本、和良好扩展的高效分布式系统,允许用户将Hadoop部署在大量廉价硬件设备所组成的集群上,为应用程序提供一组稳定可靠的接口,充分利用集群的存储和计算能力,完成海量数据的处理。

由于Hadoop优势突出,得到了众多企业和个人的青睐,尤其是在互联网领域。Yahoo!通过Hadoop集群支持广告系统和Web搜索研究;Facebook借助Hadoop集群支持数据分析和机器学习;Baidu使用Hadoop进行搜索日志的分析和网页数据的挖掘;TaobaoHadoop系统用于存储并处理电子商务交易的相关数据;中国移动研究院基于Hadoop的“Big Cloud”系统用于对数据进行分析和对外提供服务等。

PSHadoop之父Doug Cutting解释Hadoop的得名:“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。”

 

Hadoop的技术背景——与Google云计算的渊源

说到Hadoop,不得不从云计算说起,主流互联网公司为了抢占云计算的市场份额,纷纷提出各自的云计算思路以及解决方案。GoogleYahooAmazonSalesforceMicrosoft等公司作为行业领军者,它们的云计算平台解决方案的详情如下表所示:

1-1 主流云计算平台详情

 

从上表可以看出GoogleYahoo云计算平台的关键技术非常相似,的确,HadoopGoogle云计算的开源实现。

作为一个开源项目,Hadoop受到最先由Google Lab开发的Google分布式文件系统GFS(Google File System)以及Google的Map/Reduce编程模式的启发,将 NDFS(Nutch Distributed File System)和Map/Reduce分别纳入Hadoop项目中,现已发展成包括Hadoop common、HDFS、MapReduce、HBase、Hive、ZooKeeper、Avro、Pig、Ambari、Sqoop等在内的多个子项目。

Hadoop CommonHadoop体系最底层的一个模块,为Hadoop各子项目提供各种工具,如:配置文件和日志操作等。

HDFSHadoop分布式文件系统(Hadoop Distributed File System) ,前身是NDFS (Nutch Distributed File System)。类似Google File System

MapReduce实现了MapReduce编程框架。

HBase: 基于HDFS,是一个开源的、基于列存储模型的分布式数据库。类似Google BigTable的分布式NoSQL列数据库。

Hive数据仓库工具,由Facebook贡献。使得存储在hadoop里面的海量数据的汇总,即席查询简单化。

Zookeeper分布式锁设施,一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。类似Google Chubby,由Facebook贡献。

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

Pig大数据分析平台,为用户提供多种接口。

AmbariHadoop管理工具,可以快捷的监控、部署、管理集群。

Sqoop用于在Hadoop与传统的数据库间进行数据的传递。

 

Hadoop两大核心技术

Hadoop是一个集成了分布式文件系统HDFS和大规模并行计算模型MapReduce 的开源框架。HDFS和MapReduce是Hadoop的两大核心,而整个Hadoop的体系架构主要是通过HDFS来实现对分布式存储的底层支持,并通过MapReduce来实现对分布式并行任务处理的程序支持。

 

1、分布式文件系统HDFS

Hadoop的分布式文件系统(Hadoop Distributed File System,HDFS)由1个NameNode(管理节点)和N个DataNode (数据节点)组成,这2类节点采用Master/Slave(管理者/工作者)模式运行。其中,NameNode充当Master节点(主节点),维护集群内的元数据(Metadata),对外提供创建、打开、删除和重命名文件或目录的功能;DataNode充当Slave节点(从节点),存储数据,负责处理数据的读写请求,定期向NameNode 上报心跳(heartbeat)消息,NameNode 通过响应心跳来控制DataNode。HDFS体系结构如下图所示:

http://dl.javaeye.com/upload/attachment/199041/56bc025f-86c2-39f9-97dd-b0921a85a777.jpg

HDFS的底层实现原理是当有输入文件提交到Master节点后,Master将输入文件切割成多个Block(通常为64M)并为每个Block拷贝数份副本,然后将这些Block分散地存储在不同的Slave节点上。如果DataNode不能发送心跳消息,NameNode将采取修复措施,重新复制在该节点上丢失的块,从而实现容错处理。NameNode是整个文件管理系统的核心,负责维护文件系统的NameSpace(名字空间),NameSpace上记录着输入文件的分割情况、每个Block的存储位置以及每个Block所在节点的状态信息。HDFS内部的所有通信都基于标准的TCP/IP协议。

 

2、并行计算模型MapReduce

MapReduce并行计算模型以一种高容错的方式并行处理大量的数据集,实现Hadoop的并行任务处理功能。它也采用了Master/Slave结构,其中Master称为JobTracker,负责调度构成一个作业的所有任务,这些任务分布在不同的Slave上,同时监控它们的执行情况,并重新执行之前失败的任务;Slave称为TaskTracker,仅负责由主节点指派的任务,并向JobTracker汇报自身运行的任务执行情况。用户提交的计算称为Job,每一个Job会被划分成若干个Tasks。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。其执行流程如下图所示:

MapReduce并行计算模式对任务的处理分为两个阶段:Map(映射)和Reduce(规约)。最简单的MapReduce应用程序至少包含3个部分:一个Map函数、一个Reduce函数和一个 main函数。main函数将作业控制和文件输入/输出结合起来。在这点上,Hadoop 提供了大量的接口和抽象类,从而为Hadoop应用程序开发人员提供许多工具,可用于调试和性能度量等。Map函数对输入的<key,value>集合进行处理,生成中间结果<key',value'>集合。MapReduce底层自动将具有相同key'值的键值对中相应的value'进行合并,生成<key',List[value']>集合,并将其作为Reduce函数的输入。Reduce函数再进一步处理生成新的<key'',value''>集合作为输出文件。

简单地说,Map 函数接受一组数据并将其转换为一个键/值对列表,输入域中的每个元素对应一个键/值对。Reduce 函数接受 Map 函数生成的列表,然后根据它们的键(为每个键生成一个键/值对)缩小键/值对列表。下图以图形计数为例形象地说明了这两个过程:

 

HDFS与MapReduce之间关系

MapReduce是依赖于HDFS实现的。通常MapReduce会将被计算的数据分为很多小块,HDFS会将每个块复制若干份以确保系统的可靠性,同时它按照一定的规则将数据块放置在集群中的不同机器上,以便MapReduce在数据宿主机器上进行最便捷的计算。

 

Hadoop的最新发展及其在GIS领域的应用

Hadoop实时查询

Cloudera公司的两个新项目:Impala和Trevni使得Hadoop有望在今年实现实时查询。Impala是开源版的Dremel(Google大数据查询解决方案,“交互式”数据分析系统,可以组建成规模上千的集群,PB级别数据处理时间缩短到秒级),允许用户在Hadoop的HDFS、 Hbase和Hive之上运行实时查询。不必迁移。Trevni是一种新的列式(columnar)数据存储格式,可保证读取大型列式存储数据集有极好性能。Impala+Trevni已经完全实现了Dremel的查询性能,而且在SQL功能上还超过了它。

Impala的架构

 

Esri空间大数据处理环境

   GISTools for HadoopEsri推出的基于Hadoop的一套完整的空间大数据量处理的环境,包含有一套工具(Geoprocessing Tools for Hadoop)、一套API(Esri Geometry API for Java)和一系列的框架(Spatial Framework for Hadoop)。此环境的推出,扩展在Hadoopgeomtry的类型和对空间数据的操作,让开发人员能够方便的在空间数据上构建MapReduce应用程序。同时,GISTools for Hadoop扩展了HiveEsri Geometry API上的应用,使用户可以通过hive进行空间数据的处理。

 

总结

Hadoop具有如下优势:(1)可伸缩性,能够处理PB级数据,并可以无限扩充存储和计算能力。(2)可靠性,可以维护同一份数据的多份副本并自动对失败的节点重新分布处理。(3)高效性,Hadoop能并行地处理数据。同时,Hadoop也是低成本的,因为它对硬件的要求不高,所以可以运行在普通的微机集群上。

Hadoop 从单一应用(Web数据抓取)发展到现在庞大的Hadoop生态系统(Hadoop Ecosystem),自成一派的技术架构体系,叩开了大数据时代的海量数据处理的大门,开辟了海量数据存储、处理与应用的新领地。

1.这一切,都起源自Web数据爆炸时代的来临

2.数据抓取系统Nutch

3.海量数据怎么存,当然是用分布式文件系统 HDFS

4.数据怎么用呢?分析,处理

5.MapReduce框架,让你编写代码来实现对大数据的分析工作

6.非结构化数据(日志)收集处理 fuse,webdav, chukwa, flume,Scribe

7.数据导入到HDFS中,至此RDBSM也可以加入HDFS的狂欢了 Hiho, sqoop

8.MapReduce太麻烦,好吧,让你用熟悉的方式来操作Hadoop里的数据 Pig, Hive, Jaql

9.让你的数据可见 drilldown, Intellicus

10.用高级语言管理你的任务流 oozie, Cascading

11.Hadoop当然也有自己的监控管理工具 Hue, karmasphere, eclipseplugin, cacti, ganglia

12.数据序列化处理与任务调度 Avro, Zookeeper

13.更多构建在Hadoop上层的服务Mahout, Elastic map Reduce

14.OLTP存储系统 Hbase

 

参考资料:

[1]  杨来,史忠植,梁帆,.基于Hadoop云平台的并行数据挖掘方法[J].系统仿真学报,2013,25(5):936-944.

[2]  朱剑.基于虚拟云计算架构的GIS服务资源弹性调度应用研究[J].测绘通报,2013(5):92-95+107.

[3]  赵卫中,马慧芳,傅燕翔,.基于云计算平台Hadoop的并行k-means聚类算法设计研究[J].计算机科学,2011,38(10):168-176.

[4]  杨宸铸.基于HADOOP的数据挖掘研究[D].重庆:重庆大学,2010.

[5]  张良将.基于Hadoop云平台的海量数字图像数据挖掘的研究[D].上海:上海交通大学,2010.

[6]  夏大文,荣卓波.Hadoop关键技术的研究与应用[J].计算机与现代化,2013(5):138-141+148.

[7]  周诗慧,殷建.Hadoop平台下的并行Web日志挖掘算法[J].计算机工程,2013,39(6):43-46.

[8]  薛胜军,刘寅.基于Hadoop的气象信息数据仓库建立与测试[J].计算机测量与控制,2012,20(4):926-928+932.

[9]  余永红,向晓军,高阳,.面向服务的云数据挖掘引擎的研究[J].计算机科学与探索,2012,6(1):46-57.

[10]SanjayGhemawat,Howard Gobioff,Shun-Tak Leung.The Google file system[J].OperatingSystems Review, 2003,37(5):29-43.

[11]JeffreyDean,Sanjay Ghemawat.MapReduce:SimplifiedData Processing on Large Clusters [J].Communications of the Association forComputing Machinery, 2008,51(1):107-113.

[12]Pang-NingTan,MichaelSteinbach,VipinKumar.数据挖掘导论(完整版)[M].范明,范宏建,等译.北京:人民邮电出版社,2011.

 




https://m.sciencenet.cn/blog-769953-721718.html

上一篇:大数据的价值以及空间数据挖掘的思考
下一篇:犯罪时间分布测度及时间热点探测思路

1 陆泽橼

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-17 10:26

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部