彩票走势图

Hadoop教程:Hadoop的源起和体系架构

转帖|使用教程|编辑:龚雪|2014-08-01 11:36:49.000|阅读 1528 次

概述:作为Hadoop教程的第一个系列,本篇图文介绍了Hadoop的起源和体系构架。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

1.Hadoop 发展历史

1.1 Hadoop 产生背景

Hadoop最早起源于Nutch。Nutch是一个开源的网络搜索引擎,始于2002年,Nutch的设计目标是构建一个大型的全网搜索引擎,包括抓取网页,索引,查询等,但是随着数据量的增加,遇到了扩展问题。直至2003年google发表了一篇关于google的文件系统GFS,该论文描述了google搜索引擎网页数据的存储架构,该架构解决了Nutch遇到的问题,随即实现了自己的分布式文件系统,即NDFS(此间google只是开源思想,但并未开源代码),到了2004年的google的另一篇论文MapReduce:simplified data processing on large cluster ,震惊世界,该论文描述了分布式计算的框架,但也只是开源思想,并不开源代码,Nutch的开发人员靠自己完成了实现,由于NDFS和MapReduce 的成功,2006年Nutch的开发人员,随即将其移出Nutch,成为Lucene的子项目,称为Hadoop(据说是Doug Cutting儿子的玩具大象的名字),随着Hadoop的发展,2008年,Hadoop已经成为Apache基金会的顶级项目,也促生了Hadoop家族其他项目的发展。

1.2 Hadoop思想之源

Hadoop的思想主要来源于google,此间google的俩大论文GFS,MapReduce起了决定性的作用,而google的低成本之道(不使用超级计算机,不用存储;大量使用PC server,提供冗余的集群服务...)也是成功的根本。而google的成功也得益于Page Rank算法。

Hadoop教程

 

Hadoop教程

 

Hadoop教程

 

Hadoop教程

 

更加详尽有关Page Rank可以参考://blog.csdn.net/v_july_v/article/details/6142146

目前hadoop发展迅速,是实现云计算标准开源软件,已经可以在数千节点上面运行,处理数据量和速度有很可观的效果。同时,hadoop家族的项目也得到了相应的发展。

Hadoop教程

2 Hadoop的架构

2.1 Hadoop的俩大支柱:HDFS和MapReduce

其中HDFS用于大规模数据的分布式存储,而MapReduce则构建在HDFS之上,对数据进行分布式计算。

2.1 HDFS架构

HDFS是一个具有高容错性的分布式系统,适合部署在廉价的机器上,HDFS可以提供高吞吐量的数据访问,适合大数据集的应用,主要有client,NameNode,SecondaryNameNode,DataNode几个组件构成。

Hadoop教程

client:通过于NameNode于DataNode交互访问HDFS文件。

NameNode:HDFS的守护程序,是个“总管”,记录文件是如何分割成数据块的,以及这些数据块存储到哪些节点,对IO和内存进行集中管理,且是个单点。

SecondaryNameNode:监控HDFS状态的辅助后台程序,每个集群都有一个,与NameNode进行通讯,定期存储HDFS元数据快照,并且在NameNode故障的时候,提供备份作用。

DataNode:负责把HDFS数据块读写到本地文件系统,并将数据定期汇报给NameNode,DataNode以固定大小的block(默认64MB)为基本单位。

2.2 MapReduce 架构

同HDFS一样,MR也采用了Master/Slave模式,有以下组件:client,JobTracker,TaskTracker,Task.

Hadoop教程

JobTracker:负责资源监控和作业调度,运行主节点,对HDFS总控,决定哪些文件an参与处理,然后分割task并分配节点,重启失败的task等

TaskTracker:位于slave节点上,与datanode结合,管理各自节点上的task,与JobTracker交互(周期性的通过 heartbeat将资源使用情况和任务进度汇报给jobtracker)。TaskTracker通过使用“slot”等量划分(划分方法用户自己决定)节点上的资源量,分为Mapslot 和Reduceslot来提供Map任务和Reduce任务的使用。

Task:Map Task和Reduce Task,有TaskTracker启动。

Map Task流程:Map Task先将对应的split(MapReduce处理单位)迭代解析成一个个的key/alue对,依次调用map函数进行处理,最终将临时结果存到本地磁盘中,其临时数据分成若干个partition,每个partition将被一个reduce task 处理。

Hadoop教程

reduce task流程:读取partition部分,对结果排序,依次读取,调用用户自己的reduce函数处理,结果存到HDFS上面。 

Hadoop教程

参考书籍:Hadoop实战,Hadoop技术内幕 深入解析MapReduce架构设计与实现原理。

来源:编程大巴


标签:Hadoop

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP