设为首页 收藏本站
查看: 369|回复: 0

[经验分享] Hadoop的TaskTracker黑名单机制

[复制链接]

尚未签到

发表于 2016-12-10 06:55:22 | 显示全部楼层 |阅读模式
   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个是可配置的,配置参数为:
mapred.max.tracker.blacklists
  **/

  

  2、到目前为止该tasktracker被加入job黑名单的次数,超过了集群中所有tasktracker被加入job黑名单平均次数的50%;
  /**
  * 这里的50%也是可配置的,配置参数为:
mapred.cluster.average.blacklist.threshold
  **/
  

  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给出的黑名单机制,个人感觉问题很多,最好不要启用。如果已经启用的话,最好把可配置的两个参数设大些。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-312002-1-1.html 上篇帖子: hadoop学习日记四 hive环境搭建 下篇帖子: Hadoop相关部署二:Hive安装部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表