Java私塾Hadoop实战-中高级部分之HadoopMapReduce工作原理.doc

Java私塾Hadoop实战-中高级部分之HadoopMapReduce工作原理.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java私塾Hadoop实战-中高级部分之HadoopMapReduce工作原理

作者:Java私塾 创建时间: CREATEDATE \@ yyyy-M-d HH:mm:ss 2013-12-6 14:52:00 内容来自:Java私塾 Hadoop实战-中高级部分 之 Hadoop MapReduce工作原理 Hadoop RestFul Hadoop HDFS原理1 Hadoop HDFS原理2 Hadoop作业调优参数调整及原理 Hadoop HA Hadoop MapReduce高级编程 Hadoop IO Hadoop MapReduce工作原理 Hadoop 管理 Hadoop 集群安装 Hadoop RPC 第一部分:MapReduce工作原理 ? MapReduce?角色 ?Client :作业提交发起者。 ?JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作业。 ?TaskTracker:保持JobTracker通信,在分配的数据片段上执行MapReduce任务。 提交作业 ?在作业提交之前,需要对作业进行配置 ?程序代码,主要是自己书写的MapReduce程序。 ?输入输出路径 ?其他配置,如输出压缩等。 ?配置完成后,通过JobClinet来提交 作业的初始化 ?客户端提交完成后,JobTracker会将作业加入队列???然后进行调度,默认的调度方法是FIFO调试方式。 任务的分配 ?TaskTracker和JobTracker之间的通信与任务的分配是通过心跳机制完成的。 ?TaskTracker会主动向JobTracker询问是否有作业要做,如果自己可以做,那么就会申请到作业任务,这个任务可以使Map也可能是Reduce任务。 任务的执行 ?申请到任务后,TaskTracker会做如下事情: ? ?拷贝代码到本地 ? ?拷贝任务的信息到本地 ? ?启动JVM运行任务 状态与任务的更新 ?任务在运行过程中,首先会将自己的状态汇报给TaskTracker,然后由TaskTracker汇总告之JobTracker。 ?任务进度是通过计数器来实现的。 ? 作业的完成 ?JobTracker是在接受到最后一个任务运行完成后,才会将任务标志为成功。 ?此时会做删除中间结果等善后处理工作。 ? 第二部分:错误处理 任务失败 ?MapReduce在设计之出,就假象任务会失败,所以做了很多工作,来保证容错。 ?一种情况:??? 子任务失败 ?另一种情况:子任务的JVM突然退出 ?任务的挂起 TaskTracker失败 ?TaskTracker崩溃后会停止向Jobtracker发送心跳信息。 ?Jobtracker会将该TaskTracker从等待的任务池中移除。并将该TaskTracker上的任务,移动到其他地方去重新运行。 ?TaskTracker可以被JobTracker放入到黑名单,即使它没有失败。 ? JobTracker失败 ?单点故障,Hadoop新的0.23版本解决了这个问题。 第三部分:作业调度 FIFO ? ? ? ? ?Hadoop?中默认的调度器,它先按照作业的优先级高低,再按照到达时间的先后选?择被执行的作业 公平调度器 ? ? ??为任务分配资源的方法,其目的是随着时间的推移,让提交的作业获取等量的集?群共享资源,让用户公平地共享集群。具体做法是:当集群上只有一个任务在运行?时,它将使用整个集群,当有其他作业提交时,系统会将TaskTracker节点空间的时?间片分配给这些新的作业,并保证每个任务都得到大概等量的CPU时间。 容量调度器 ? ? ? ? ? ? ??支持多个队列,每个队列可配置一定的资源量,每个队列采用?FIFO?调度策略,为?了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交?的作业所?占资源量进行限定。调度时,首先按以下策略选择一个合适队列:计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值?最小的队?列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择?,同时考虑用户资源量限制和内存限制。但是不可剥夺式 配置公平调度器 1.修改mapred-stie.xml 加入如下内容 property ????? namemapred.jobtracker.taskScheduler/name ????? valueorg.apache.hadoop.mapred.FairScheduler/value ?????? /property ?????? property ????? namemapred.fairscheduler.allocation.file/name ????? value/opt/hadoop/conf

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档