Hadoop的TaskTracker黑名单机制
Note:这里描述的黑名单是指jobtracker网页summary表格中显示的”Blacklisted Nodes",称之为集群黑名单.
在HADOOP-4305之前,Hadoop中每个job会维护一个TaskTracker黑名单,这里称之为job黑名单。简单来讲就是当一个job中有4个task曾经在某个tasktracker上失败过,则该job就将这个tasktracker加入自己的job黑名单,即该job的其他task不再调度到这个tasktracker上。HADOOP-4305中认为所有的job黑名单应该汇总一起,让jobtracker从全局的角度排除那些导致大量task失败的TaskTracker。因为如果很多job将某一个tasktracker加入了job黑名单,很可能这个tasktracker确实有问题,不应该再让他跑task了。
从以往运维Hadoop集群经验来看,确实存在这样的tasktracker导致了大量task失败从而拖慢整个业务线。而调查该tasktracker后发现其自身确实有问题,如userlogs的子目录达到上限、根盘空间满了等。而我们的解决方案通常是根据实际案例增加对应监控来逐个解决。比如监控userlogs子目录数达到阈值后即清理最老的目录。再比如监控根盘空间,如果达到了阈值就停掉tasktracker进程,并报警给管理员等。而HADOOP-4305希望Hadoop自身智能地发现类似问题并自己解决。智能解决当然能减轻运维人员的负担,但也引入了很多问题。比如判断错误,将不该黑掉的tasktracker黑了等。而且一旦一个tasktracker被黑了,运维人员需要调查被黑原因,也要想办法去恢复。有时候这个负担比外围监控更大。但是对于运维一个已经启用集群黑名单机制的集群来说,只能先去熟悉这个机制,再去优化并监控。下面描述下HADOO-4305给出的机制。
Part 1/2:Tasktracker加入集群黑名单机制:
当一个job成功结束时,对该job黑名单中的tasktracker做如下三个判断:
/**
* 强调下这里值的是成功的job,因为失败job的task失败大多是因为自身有bug导致的,不能冤枉tasktracker。
* 而事实上成功job中失败的task也可能是job自身问题导致的,所以我不认可这个机制。
**/
1、这个tasktracker已经被至少4个job加入了黑名单;
/**
* 这里的4个是可配置的,配置参数为:
**/
2、到目前为止该tasktracker被加入job黑名单的次数,超过了集群中所有tasktracker被加入job黑名单平均次数的50%;
/**
* 这里的50%也是可配置的,配置参数为:
**/
3、已经加入黑名单的tasktracker个数不超过集群总tasktracker的50%;
/**
* 这条限制是不能有超过一半的tasktracker被放入黑名单,目的是防止因太多tasktracker放入黑名单而严重影响集群工作。
* 这里的50%是不可配置的。
**/
以上三条如果均满足,则将job黑名单中的tasktracker加入集群黑名单,以后将不在该tasktracker上调度任何task。
Part 2/2: 已加入集群黑名单的tasktracker的恢复机制:
Jobtracker收到集群黑名单中的tasktracker发来的心跳时,做如下判断:
/**
* 加入集群黑名单的tasktracker仍然照常发送心跳。
**/
1、如果该tasktracker已经重启,则直接从集群黑名单中取出,并完全恢复正常;
/**
* 这是最常用的恢复方法。
**/
2、如果该tasktracker在24小时内未被加入过job黑名单,则其加入job黑名单的计数减1,并允许调度task。
/**
* 这里的24小时是不可配置的;
* 由于tasktracker加入集群黑名单后不能调度task,也就没有机会加入job黑名单了,因此几乎所有集群黑名单中tasktracker都会在24小时之后开始调度,然后被一个job加入job黑名单后又不能调度了。
* 如此反复,因此这条其实没啥用,常用的恢复方法还是重启tasktracker。
**/
以上描述了HADOOP-4305给出的黑名单机制,个人感觉问题很多,最好不要启用。如果已经启用的话,最好把可配置的两个参数设大些。
Hadoop的TaskTracker黑名单机制相关推荐
- hadoop黑名单机制
转自:http://blog.csdn.net/liangliyin/article/details/7606275 Note:这里描述的黑名单是指jobtracker网页summary表格中显示的& ...
- Hadoop1.2.1 tasktracker容错机制分析,黑名单与灰名单
hadoop1.2.1 tasktracker容错机制分析 1.job级别黑名单 每个Job都会维护自己的黑名单.如果tasktracker被加入该黑名单,则该Job不会再分配给这个节点分配task. ...
- Hadoop之Yarn工作机制详解
Hadoop之Yarn工作机制详解 目录 Yarn概述 Yarn基本架构 Yarn工作机制 作业提交全过程详解 1. Yarn概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于 ...
- Hadoop之ReduceTask工作机制
Hadoop之ReduceTask工作机制 目录 设置ReduceTask并行度(个数) 注意 实验:测试reducetask多少合适 ReduceTask工作机制 1. 设置ReduceTask并行 ...
- Hadoop之MapTask工作机制
Hadoop之MapTask工作机制 目录 并行度决定机制 MapTask工作机制 1. 并行度决定机制 问题引出 maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度 ...
- Hadoop之DataNode工作机制
Hadoop之DataNode工作机制 目录 DataNode工作机制 数据完整性 掉线时限参数设置 1. DataNode工作机制 DataNode工作机制如下图 一个数据块在DataNode上以文 ...
- hadoop配置文件加载机制
hadoop配置文件加载机制 @(HADOOP)[hadoop] hadoop通过Configuration类来保存配置信息 1.通过Configuration.addResource()来加载配置文 ...
- spark2.2以后版本任务调度将增加黑名单机制
问题导读 1.spark如何开启黑名单机制? 2.哪些条件将将executors列入黑名单? 3.整个节点被列入黑名单,executors如何处理? spark2.2中在任务调度中,增加了黑名单机制, ...
- 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序...
一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象. Java序列化(java.i ...
最新文章
- 【每日一算法】二叉树中所有距离为 K 的结点
- ma应用、超级短线、分钟短线买卖和看盘心得
- Day12 CSS简单用法
- cookie session token区别_彻底理解cookie,session,token
- 7.定义一个有80个元素的字符数组,从键盘输入一串字符,将其中的大写字母转换为小写字母,而将原来为小写的字母转换为大写字母,其他字符不变。
- nginx File not found 错误(转)
- Solr的安装和使用
- 『收藏向 期末SSM课设救急』 教你从搭建到测试运行手撸一个SSM项目实战,附带源码,前端页面、解析和一般遇到的问题(排雷)
- 查看gpio状态_基于Arduino开发,借助blinker平台,让NodeMCU实现8路继电器APP端状态监视和控制...
- 小型数控雕刻机制作Arduino_【图片】广州玉邦雕刻机厂家【玉石雕刻机吧】
- python实现典型相关分析_典型相关分析 CCA
- 最新版云铺购ds网系统全开源可运营程序源码
- Blender:超详细的甜甜圈制作教程(一)【原教程 油管:Blender Guru】——建模篇
- Linux date对时间戳的转换
- 分享一个动态sql编写工具
- Gini和AUC的关系(Gini=2AUC-1真的成立吗?)
- Linux apt-get 安装离线包
- Java初始化大乱斗
- pest分析和swot分析的区别
- Image Processing Algorithms
热门文章
- Andorid实现皮皮蟹App的核心功能-语音播放
- Linux grep之正则表达式
- android fork 子进程,fork子进程
- 深蓝学院,激光slam第二讲作业,踩坑总结
- 任何一句话都可以品味一辈子
- redis实战(5):对文章进行分组
- python3 爬虫数据处理 爬取华为应用市场 APP应用评论(二)根据评论生成词云——学霸君
- 一位90后的自述:如何从年薪3w到30w
- 修改练习1中的Gerbil类,将其放入Map中,将每个Gerbil的名字与每一个Gerbil关联起来。为keySet()获取Iterator,使它遍历Map,针对每个键查询Gerbil,然后打印出键。
- 4976: [Lydsy1708月赛]宝石镶嵌 dp