Hadoop TaskTracker 自我检测机制

Hadoop的TaskTracker通过启动时的循环检测来实现自我检测。在TaskTracker.run()方法中,如果满足条件将启动健康监测服务。健康检查涉及配置的脚本,通过定时任务执行,若执行过程中出现异常,则视为健康状态异常,并报告相应的健康状态。
摘要由CSDN通过智能技术生成
Hadoop TaskTracker 自我检测机制
机制:通过TaskTracker在启动时循环检测,设计时通过捕获异常来完成状态检测
|-->TaskTracker.run() 
   |-->initialize();
     |-->if (shouldStartHealthMonitor(this.fConf))
        |-->startHealthMonitor(this.fConf);
          |-->healthChecker = new NodeHealthCheckerService(conf);
               |-->initialize(conf);
                    |-->this.nodeHealthScript = conf.get(HEALTH_CHECK_SCRIPT_PROPERTY); |mapred.healthChecker.script.path
                    |-->timer = new NodeHealthMonitorExecutor(args);  |初始化执行器
          |-->healthChecker.start();
               |-->if (!shouldRun(conf))  |判断是否存在自我检测
               |-->nodeHealthScriptScheduler = new Timer("NodeHealthMonitor-Timer", true);
               |-->nodeHealthScriptScheduler.scheduleAtFixedRate(timer, 0, intervalTime);  |执行如下

|-->NodeHealthMonitorExecutor
     |-->construct() |构造器
          |-->execScript.add(nodeHealthScript);
          |-->shexec = new ShellCommandExecutor((String[]) execScript.toArray(new String[execScript.size()]), null, null, scriptTimeout);
     |-->run() |Executor线程执行
          |-->HealthCheckerExitStatus status = HealthCheckerExitStatus.SUCCESS; |如无异常则表示状态正常
          |-->shexec.execute();  |定时器执行健康检查脚本
          |-->Exception |设计时以Exception的处理确定检查状态
          |-->reportHealthStatus(status);
               
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值