Hadoop核心机制详细解析

Hadoop核心机制详细解析

Hadoop的核心机制是通过HDFS文件系统和MapReduce算法进行存储资源、内存和程序的有效利用与管理。在现实的实例中,通过Hadoop,可以轻易的将多台普通的或低性能的服务器组合成分布式的运算-存储集群,提供大数据量的存储和处理能力。
作者:InBigData来源:InBigData|2012-07-0310:57
移动端

收藏

分享

Hadoop的核心机制是通过HDFS文件系统和MapReduce算法进行存储资源、内存和程序的有效利用与管理。在现实的实例中,通过Hadoop,可以轻易的将多台普通的或低性能的服务器组合成分布式的运算-存储集群,提供大数据量的存储和处理能力。

知其然,知其所以然。要想深入学习和理解Hadoop的核心机制,还要从MapReduce和HDFS的原理入手。

MapReduce的"大事化小"

作为Google提出的架构,MapReduce通过Map(映射)和Reduce(化简)来实现大规模数据(TB级)的并行计算。可以简单理解为,通过Map(映射)函数,把一组键值对映射成一组新的键值对;指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

MapReduce是一种大数据计算的开发模式和思想方法。开发人员先分析需求所提出问题的解决流程,找出数据可以并发处理的部分(Reduce),也就是那些能够分解为小段的可并行处理的数据,再将这些能够采用并发处理的需求写成Map程序(Map)。

然后就可以使用大量服务器来执行Map程序,并将待处理的庞大数据切割成很多的小份数据,由每台服务器分别执行Map程序来处理分配到的那一小段数据,接着再将每一个Map程序分析出来的结果,透过Reduce程序进行合并,最后则汇整出完整的结果。

MapReduce的整个流程就像...

MapReduce是Hadoop分布式计算的关键技术,将要执行的问题,拆解成Map和Reduce的方式来执行,以达到分散运算的效果。例如要搜寻网页中的"In Big Data"这个词,可以先用Map程序,来计算出所有网页中,每一个词的位置。再使用Reduce程序,在每一个字的清单中,检索出"In Big Data"所对应的URL,您就来到了这个博客。MapReduce程序的执行过程如下:

MapReduce运行流程

MapReduce的运作方式就像快递公司一样。物流部门会将发往各地的包裹先运送到各地的物流分站,再由分站派出进行派送;快递员等每个包裹的用户签单后将数据反馈给系统汇总,完成整个快递流程。在这里,每个快递员都会负责配送,所执行的动作大致相同,且只负责少量的包裹,最后由物流公司的系统进行汇总(而不是从一个库房一个快递员直接发往各地;这样的话估计顺风、京东神马的会被人骂死)。

在Hadoop集群架构中,服务器依据用途可分成Master节点和Worker节点,Master负责分配任务,而Worker负责执行任务。

Hadoop中的Master与Worker

Hadoop运算集群中的服务器依用途分成Master节点和Worker节点。Master节点中含有JobTracker、NameNode、TaskTracker和DataNode程序;Worker节点含有TaskTracker和DataNode。另外在系统的架构上,最简单的Hadoop架构,可以分成上层的MapReduce运算层以及下层的HDFS数据层。

在Master节点的服务器中会执行两套程序:一个是负责安排MapReduce运算层任务的JobTracker,以及负责管理HDFS数据层的NameNode程序。而在Worker节点的服务器中也有两套程序,接受JobTracker指挥,负责执行运算层任务的是TaskTracker程序,与NameNode对应的则是DataNode程序,负责执行数据读写操作以及执行NameNode的副本策略。

在MapReduce运算层上,担任Master节点的服务器负责分配运算任务,Master节点上的JobTracker程序会将Map和Reduce程序的执行工作指派给Worker服务器上的TaskTracker程序,由TaskTracker负责执行Map和Reduce工作,并将运算结果回复给Master节点上的JobTracker。

在HDFS数据层上,NameNode负责管理和维护HDFS的名称空间、并且控制档案的任何读写动作,同时NameNode会将要处理的数据切割成一个个档案区块(Block),每个区块是64MB,例如1GB的数据就会切割成16个档案区块。NameNode还会决定每一份档案区块要建立多少个副本,一般来说,一个档案区块总共会复制成3份,并且会分散储存到3个不同Worker服务器的DataNode程序中管理,只要其中任何一份档案区块遗失或损坏,NameNode会自动寻找位于其他DataNode上的副本来回复,维持3份的副本策略。

在一套Hadoop集群中,分配MapReduce任务的JobTracker只有1个,而TaskTracker可以有很多个。同样地,负责管理HDFS文件系统的NameNode也只有一个,和JobTracker同样位于Master节点中,而DataNode可以有很多个。

不过,Master节点中除了有JobTracker和NameNode以外,也会有TaskTracker和DataNode程序,也就是说Master节点的服务器也可以在本地端扮演Worker角色的工作。

在部署上,因为Hadoop采用Java开发,所以Master服务器除了安装操作系统如Linux之外,还要安装Java执行环境,然后再安装Master需要的程序,包括了NameNode、JobTracker和DataNode与TaskTracker。而在Worker服务器上,则只需安装Linux、Java环境、DataNode和TaskTracker。

在之后的文章中将详细说明Hadoop安装部署方面的问题。这里只针对Hadoop的运行机制及内部细节做了讨论;在实际的应用中虽然还需要很多知识,但就理解Hadoop和MapReduce核心思想来说,以上的内容值得反复推敲。对技术,要知其然,知其所以然!

Hadoop核心机制详细解析-hadoop三大核心组件

相关推荐
学传打活5 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活10 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16818 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心20 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u0103055271 个月前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055271 个月前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝1 个月前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055271 个月前
Java图像处理实战指南
人工智能·1024程序员节
u0103055271 个月前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055271 个月前
Java实用类应用精讲
人工智能·1024程序员节