- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hadoop基本概念
hadoop 基本概念
一、hadoop 基本概念
hadoop 包括两个核心组成:
HDFS :分布式文件系统,存储海量的数据
MapReduce :并行处理框架,实现任务分解和调度。
整个 HDFS 三个重要角色:NameNode、DataNode 和 Client。NameNode 可以看作是分布式文件系统中的管理者,主要
负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode 会将文件系统的 Meta-data 存储在内存中,
这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在 DataNode 的信息等。DataNode 是文件
存储的基本单元,它将 Block 存储在本地文件系统中,保存了 Block 的 Meta-data ,同时周期性地将所有存在的Block 信息
发送给 NameNode。Client 就是需要获取分布式文件系统文件的应用程序。
MapReduce 是现今一个非常流行的分布式计算框架,它被设计用于并行计算海量数据。第一个提出该技术框架的是 Google
公司,而 Google 的灵感则来自于函数式编程语言,如 LISP ,Scheme ,ML 等。MapReduce 框架的核心步骤主要分两部
分:Map 和 Reduce。当你向 MapReduce 框架提交一个计算作业时,它会首先把计算作业拆分成若干个 Map 任务,然
后分配到不同的节点上去执行,每一个 Map 任务处理输入数据中的一部分,当 Map 任务完成后,它会生成一些中间文件,
这些中间文件将会作为 Reduce 任务的输入数据。Reduce 任务的主要目标就是把前面若干个 Map 的输出汇总到一起并输
出。
二、hadoop 运行机制
关于 hadoop 的运行机制,这里由于笔者还没真正弄透彻,只是知道一个大致的处理思想。下面就贴几张比较形象的图片:
HDFS :
文件写入:
Client 向 NameNode 发起文件写入的请求。
1 / 10
NameNode 根据文件大小和文件块配置情况,返回给 Client 它所管理部分 DataNode 的信息。
Client 将文件划分为多个 Block ,根据DataNode 的地址信息,按顺序写入到每一个 DataNode 块中。
文件读取:
Client 向 NameNode 发起文件读取的请求。
NameNode 返回文件存储的 DataNode 的信息。
Client 读取文件信息。
文件 Block 复制:
NameNode 发现部分文件的 Block 不符合最小复制数或者部分 DataNode 失效。
通知 DataNode 相互复制 Block。
DataNode 开始直接相互复制。
MapReduce 工作原理:
一切都是从最上方的 user program 开始的,user program 链接了 MapReduce 库,实现了最基本的 Map 函数和 Reduce
函数。
MapReduce 库先把 user program 的输入文件划分为 M 份(M 为用户定义),每一份通常有 16MB 到 64MB ,如图左方
所示分成了 split0~4(文件块) ;然后使用fork 将用户进程拷贝到集群内其它机器上。
user program 的副本中有一个称为 master ,其余称为worker ,master 是负责调度的,为空闲 worker 分配作业(Map 作
业或 Reduce 作业),worker 数量可由用户指定的。
被分配了 Map 作业的 worker ,开始读取对应文件块的输入数据,Map 作业数量是由 M 决定的,和 split 一一对应;Map
2 / 10
作业(包含多个 map 函数)从输入数据中抽取出键值对,每一个键值对都作为参数传递给 map 函数,map 函数产生的中间键
值对被缓存在内存中。
缓存的中间键值对会被定期写入本地磁盘。主控进程知道 Reduce 的个数,比如 R 个(通常用户指定)。然后主控进程通常
选择一个哈希函数作用于键并产生 0~R-1 个桶编号。Map 任务输出的每个键都被哈希起作用,根据哈希结果将 Map 的结果
存放到 R 个本地文件中的一个(后来每个文件都会指派一个 Reduce 任务)。
master 通知分配了 Reduce 作业的 wo
文档评论(0)