MapReduce框架结构协议.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
----------框架结构技术----------- ---------框架结构技术---------- MapReduce框架结构 MapReduce框架结构 ----------框架结构技术----------- ---------框架结构技术---------- 2 MapReduce 框架结构 Map/Reduce 是一个用于大规模数据处理的分布式计算模型,它最初是由 Google 工程师设 计并实现的,Google 已经将它完整的 MapReduce 论文公开发布了。其中对它的定义是, Map/Reduce 是一个编程模型(programming model),是一个用于处理和生成大规模数据集(processing and generating large data sets)的相关的实现。用户定义一个 map 函数来处理一个 key/value 对以生成一批中间的 key/value 对,再定义一个 reduce 函数将所有这些中间的有着相同 key 的 values 合并起来。很多现实世界中的任务都可用这个模型来表达。 Hadoop 的 Map/Reduce 框架也是基于这个原理实现的,下面简要介绍一下 Map/Reduce 框架主要组成及相互的关系。 总体结构 Mapper 和 Reducer 运行于 Hadoop 的 MapReduce 应用程序最基本的组成部分包括一个 Mapper 和一个 Reducer 类,以及一个创建 JobConf 的执行程序,在一些应用中还可以包括一个 Combiner 类,它实际也是 Reducer 的实现。 JobTracker 和 TaskTracker 它们都是由一个 master 服务 JobTracker 和多个运行于多个节点的 slaver 服务 TaskTracker 两个类提供的服务调度的。master 负责调度 job 的每一个子任务 task 运行于slave 上,并监控它们,如果发现有失败的 task 就重新运行它,slave 则负责直接执行每一个task。TaskTracker 都需要运行在 HDFS 的 DataNode 上,而 JobTracker 则不需要,一般情况应该把 JobTracker 部署在单独的机器上。 JobClient ----------框架结构技术----------- ---------框架结构技术---------- 每一个 job 都会在用户端通过 JobClient 类将应用程序以及配置参数 Configuration 打包成 jar 文件存储在 HDFS,并把路径提交到 JobTracker 的 master 服务,然后由 master 创建每一个 Task(即 MapTask 和 ReduceTask)将它们分发到各个 TaskTracker 服务中去执行。 JobInProgress JobClient 提交 job 后,JobTracker 会创建一个 JobInProgress 来跟踪和调度这个 job, 并把它添加到 job 队列里。JobInProgress 会根据提交的 job jar 中定义的输入数据集(已分解成 FileSplit)创建对应的一批 TaskInProgress 用于监控和调度 MapTask,同时在创建指定数目的 TaskInProgress 用于监控和调度 ReduceTask,缺省为 1 个 ReduceTask。 TaskInProgress JobTracker 启动任务时通过每一个 TaskInProgress 来 launchTask,这时会把 Task 对象(即 MapTask 和 ReduceTask)序列化写入相应的 TaskTracker 服务中,TaskTracker 收到后会创建对应的 TaskInProgress(此 TaskInProgress 实现非 JobTracker 中使用的 TaskInProgress,作用类似)用于监控和调度该 Task。启动具体的 Task 进程是通过 TaskInProgress 管理的 TaskRunner 对象来运行的。TaskRunner 会自动装载 job jar,并设置好环境变量后启动一个独立的 java child 进程来执行 Task,即 MapTask 或者 ReduceTask,但它们不一定运行在同一个 TaskTracker 中。 MapTask 和 ReduceTask 一个完整的 job 会自动依次执行 Mapper、Combiner(在 JobConf 指定了 Combiner 时执行)和 Reducer,其中 Mapper 和 Combiner 是由 MapTask 调用执行,Reducer

文档评论(0)

宋停云 + 关注
实名认证
文档贡献者

特种工作操纵证持证人

尽我所能,帮其所有;旧雨停云,以学会友。

领域认证该用户于2023年05月20日上传了特种工作操纵证

1亿VIP精品文档

相关文档