文档章节

关于开源项目《Scavenger》

王二铁
 王二铁
发布于 2014/03/05 18:25
字数 623
阅读 307
收藏 8

    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源码

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

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

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

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


© 著作权归作者所有

王二铁

王二铁

粉丝 89
博文 62
码字总数 41123
作品 0
北京
后端工程师
私信 提问
git@osc ssh配置路过的坎

背景:osc 合作账号登录,3个月前创建的项目,过程不描述了。前一阵开始用git,安装和使用参考git@osc的帮助文档(传送门:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248...

王二铁
2013/12/26
6.3K
0
王建奎Jerrick/Scavenger

#Scavenger #wiki *项目介绍和使用说明 http://git.oschina.net/wangjiankui/Scavenger/wikis/%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D%E5%92%8C%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%EF%BC%8......

王建奎Jerrick
2015/02/10
0
0
自定义的python目录和文件 import 找不到路径的解决办法

+++++ 项目背景++++++++++++++++++++++++++++++++++++ scavenger.py中有一个通用的方法getList,为了没管和复用,新建目录common和文件toolutil.py 将函数写入: 新建目录 和文件 : common...

王二铁
2013/12/29
7.3K
0
公司强制12小时工作制,想换个公司了,目前做Hadoop的数据统计分析,希望继续从事hadoop数据相关的工作

公司走弹性工作制,大部分人都是10:30~7:30 ,身为数据人,也是我们部门起的最早的,每天早上7点如果数据没跑完我都会爬起来查问题,补数据,平常大概9点到公司,晚上也是7:30回家。 有自...

王二铁
2013/03/13
5.7K
32
golang如何读取文件名中包含空格的文件

环境: win8.1 x64, go1.3 x64 程序调用方式: 问题描述: 只要是当前文件中含有空格程序就报错,错误如下: The system cannot find the file specified. goroutine 16 [running]: runtime.pani...

__都非拉得
2014/07/28
835
2

没有更多内容

加载失败,请刷新页面

加载更多

编程作业20190210900169

1编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include <stdio.h>#include <stdlib.h> int main(){ char firstName[20]; char lastName[20]; print......

1李嘉焘1
15分钟前
2
0
补码的优点及原理分析

只讨论整数 1.计算机内部为什么没有减法器? 减法运算本身其实就是加法,如x - y即x +(-y),所以只需要将负数成功表示出来并可以参加加法运算,那加法器就可同时实现“+”和“-”的运算。这...

清自以敬
30分钟前
59
0
Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
57分钟前
5
0
Spring Security 实战干货:必须掌握的一些内置 Filter

1. 前言 上一文我们使用 Spring Security 实现了各种登录聚合的场面。其中我们是通过在 UsernamePasswordAuthenticationFilter 之前一个自定义的过滤器实现的。我怎么知道自定义过滤器要加在...

码农小胖哥
今天
8
0
常见分布式事务解决方案

1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源...

asdf08442a
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部