关于开源项目《Scavenger》

    Scavenger中文名清道夫,名字就是来源于清道夫鱼。

    项目背景:   Hadoop 集群中会运行很多个Job, Job可能来源于MR脚本、Hive SQL 、Pig 脚本等, 最初公司的集群没有管理Job, 有些mapper数过大/产生数据倾斜/占用reduce槽位太多的Job会抢占所有的资源,造成其他Job进程的阻塞。而最初都是发现Job跑的太慢,然后看JobTracker(50030)时发现这种异常Job再人工kill, 非常不够智能,而且晚上执行当天计算流程的时候出现就悲剧的一晚上白忙活。基于这些,就有了本项目的设想,监控JobTracker上的Job,发现超过设定好的最大Mapper数或最长时间则kill 掉,然后邮件/短信报告出来。

    项目延期:这里楼主要自我检讨。项目方案虽然很早就有了,从最初的Python抓取调研(2013-03-04)到真正进入编码期(2013-11-25)中间有了太长的延迟。

    项目的方案:基于Python抓取,BeautifulSoup+正则匹配,os.system()杀Job,非常初级,比较丑陋,但是很易于理解,不需要懂Hadoop深层源码都可以使用。

    项目原理:Python定时(每5分钟,crontab 执行时可自行设定)抓取JobTracker页面上正在运行中的Job,然后通过Job_id再进一步获取Job的信息,包括Map数,Reduce数,执行时间,提交Job的ip/主机,hive sql等,判断超过设定的最大Map数或最长执行时间则杀掉Job。

    项目地址:http://git.oschina.net/wangjiankui/Scavenger

                  https://github.com/Jerrick/Scavenger      

    目前的可优化点:目前的版本只适合本公司的环境(公司机器上装bs有问题,整个过程在本机完成),脚本目录设置有点恶心/麻烦,代码还有很大可优化空间

    后续计划1(原抓取方案):代码优化,流程优化

    后续计划2(从底层考虑):抛开抓取的方案,直接调用Hadoop的API来考虑实现。


其他进行中的项目:

    1. Pigsty : PIG相关

    2. Hkill : 需要修改Hadoop源码

++++++++++++++++++++++++++++++++++++++++

期待各路大神的意见和指导:)

其他的开源项目有想一起做的可以咨询

++++++++++++++++++++++++++++++++++++++++


你可能感兴趣的:(hadoop,hadoop,Monitor,开源项目,job,job,监控,Scavenge)