暂无容错机制,挂掉以后,须要人工介入,重启。 node
用户能够经过配置一些参数,以便JobTracker重启后,让全部做业恢复运行。用户配置若干参数后,JobTracker重启前,会在history log中记录各个做业的运行状态,这样在JobTracker关闭后,系统中全部数据目录(包括各类临时目录)均会被保留,待JobTracker重启以后,JobTracker自动从新提交这些做业,并只对未运行完成的task进行从新调度,这样可避免已经计算完的task从新计算。 算法
配置项 |
默认值 | 描述 |
mapred.jobtracker.restart.recover |
false |
true时jobtracker重启以前运行的job能够在jobtracker restart以后恢复,false则须要从新运行。 |
mapred.jobtracker.job.history.block.size |
3145728 |
保存Job历史日志文件的大小,job的恢复就是使用这些历史日志。 |
hadoop.job.history.location |
${hadoop.log.dir}/history |
Job history存储位置 |
(4)灰名单(graylist)
采用了启发式算法发现的有问题的节点,加入灰名单。
mapred.jobtracker.blacklist.fault-timeout-window:默认是3小时,时间窗口,计算该时间内失败的task个数
若是知足如下条件,则将tasktracker加入灰名单:
mapred.max.tracker.blacklists:默认是4,bad tasktracker阈值,当一个tasktracker在时间窗口内失败个数超过该阈值,则认为该tasktracker是bad tasktracker
mapred.cluster.average.blacklist.threshold,默认是0.5,若是一个bad tasktracker失败的task个数超过了全部tasktracker平均值的mapred.cluster.average.blacklist.threshold倍,则加入灰名单,不只会自动加入黑名单。
从新启动该TaskTracker,就可以将它从黑名单和灰名单中删除。
3. Job
mapred.max.tracker.failures:一个做业在某个tasktracker上失败的task个数超过该值,则该tasktracker被加到该job的blacklist中,今后再也不往该tasktracker分配该job的task.
4. Task
mapred.map.max.attempts:每一个map task最大尝试次数
mapred.reduce.max.attempts:每一个reduce task最大尝试次数
5. Record
mapred.skip.map.max.skip.records:跳过坏记录条数(数据格式不对,空纪录等)。当遇到坏记录时,Hadoop尝试跳过的最多记录条数。
6. 磁盘
用户能够配在mapred.local.dir参数配置多个磁盘目录,将map task中间结果分不到不一样磁盘上,加强容错性。Map task临时结果将被轮询写到这些目录中,以免某个磁盘目录数据过多。(轮询的方式仍然可能致使某个磁盘目录数据过多,最好的策略是每次选择数据最少的磁盘目录写入,采用小顶堆)。
用户日志userlogs可被分布不到不一样磁盘目录中,减小单个磁盘日志写入压力。
oop