一种hadoop任务监控方法及系统与流程

文档序号:13876073阅读:367来源:国知局
一种hadoop任务监控方法及系统与流程

本发明涉及大数据处理的技术领域,尤其涉及一种hadoop任务监控方法,以及hadoop任务监控系统。



背景技术:

关于web页面实现的任务查看功能,目前用户只能查看web页面,如果任务严重拖累集群,只能手动发现、手动杀死kill。这样用户体验感很差,浪费大量劳动力。



技术实现要素:

为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种hadoop任务监控方法,其自动实时监控hadoop集群的每个任务的资源占用情况,发现任务占用资源过多将会自动关闭任务。

本发明的技术方案是:这种hadoop任务监控方法,该方法包括以下步骤:

(1)开始,执行初始化的操作;

(2)获取用户白名单whiteusers:通过查询数据库获取有权限的账户名称列表,便于后面的任务用户名合法性检查;

(3)获取任务白名单whitetasks:通过查询数据库获取任务白名单列表,便于后面的任务合法性检查,在白名单中的任务略过;

(4)获取正在运行的任务taskset:通过hadoop的api获取任务集合;

(5)判断taskset是否为空,是则执行步骤(6),否则执行步骤(8);

(6)从taskset中移出一个任务task:从taskset中取出一个任务;

(7)检查单个task的合法性:检查任务的各项指标,判断任务是否非法,跳转到步骤(5);

(8)结束。

本发明通过整个过程自动判定执行,准实时保护hadoop系统的安全,自动实时监控hadoop集群的每个任务的资源占用情况,发现任务占用资源过多将会自动关闭任务。

还提供了一种hadoop任务监控系统,该系统包括:

初始化模块,其配置来执行初始化的操作;

获取用户白名单模块,其配置来通过查询数据库获取有权限的账户名称列表,便于后面的任务用户名合法性检查;

获取任务白名单模块,其配置来通过查询数据库获取任务白名单列表,便于后面的任务合法性检查,在白名单中的任务略过;

获取正在运行的任务模块,其配置来通过hadoop的api获取任务集合;

判断模块,其配置来判断taskset是否为空,是则执行移出模块,否则结束;

移出模块,其配置来从taskset中移出一个任务task:从taskset中取出一个任务;

检查模块,其配置来检查单个task的合法性:检查任务的各项指标,判断任务是否非法,跳转到判断模块。

附图说明

图1所示为根据本发明的hadoop任务监控方法的流程图。

图2所示为根据本发明的hadoop任务监控方法的步骤(7)的流程图。

具体实施方式

如图1所示,这种hadoop任务监控方法,该方法包括以下步骤:

(1)开始,执行初始化的操作;

(2)获取用户白名单whiteusers:通过查询数据库获取有权限的账户名称列表,便于后面的任务用户名合法性检查;

(3)获取任务白名单whitetasks:通过查询数据库获取任务白名单列表,便于后面的任务合法性检查,在白名单中的任务略过;

(4)获取正在运行的任务taskset:通过hadoop的api获取任务集合;

(5)判断taskset是否为空,是则执行步骤(6),否则执行步骤(8);

(6)从taskset中移出一个任务task:从taskset中取出一个任务;

(7)检查单个task的合法性:检查任务的各项指标,判断任务是否非法,跳转到步骤(5);

(8)结束。

本发明通过整个过程自动判定执行,准实时保护hadoop系统的安全,自动实时监控hadoop集群的每个任务的资源占用情况,发现任务占用资源过多将会自动关闭任务。

另外,如图2所示,所述步骤(7)包括以下分步骤:

(7.1)初始化任务信息;

(7.2)判断提交任务的用户是否在用户白名单中,是则执行步骤(7.3),否则执行步骤(7.8);

(7.3)判断该任务是否为白名单任务,如果是则放弃检查,执行步骤(7.9),否则执行步骤(7.4);

(7.4)判断检查任务的map数是否超出规定,如果是则执行步骤(7.8),否则执行步骤(7.5);

(7.5)判断检查任务的reduce数是否超出规定,如果是则执行步骤(7.8),否则执行步骤(7.6);

(7.6)判断检查任务的输出量是否超出规定,如果是则执行步骤(7.8),否则执行步骤(7.7);

(7.7)判断检查任务的运行时间是否超出规定的长度,如果是则执行步骤(7.8),否则执行步骤(7.9);

(7.8)杀死task,给用户发送邮件:判断该任务非法,杀死该任务并给提交该任务的用户发送通知邮件;

(7.9)单个任务检查结束:单个任务检查结束,任务的部分信息记入数据库。

另外,所述步骤(7.4)中,map数为20000个。

另外,所述步骤(7.5)中,reduce数是1000个。

另外,所述步骤(7.6)中,任务的输出量是5t。

另外,所述步骤(7.7)中,规定的长度是10小时。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:rom/ram、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种hadoop任务监控系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的系统包括:

初始化模块,其配置来执行初始化的操作;

获取用户白名单模块,其配置来通过查询数据库获取有权限的账户名称列表,便于后面的任务用户名合法性检查;

获取任务白名单模块,其配置来通过查询数据库获取任务白名单列表,便于后面的任务合法性检查,在白名单中的任务略过;

获取正在运行的任务模块,其配置来通过hadoop的api获取任务集合;

判断模块,其配置来判断taskset是否为空,是则执行移出模块,否则结束;

移出模块,其配置来从taskset中移出一个任务task:从taskset中取出一个任务;

检查模块,其配置来检查单个task的合法性:检查任务的各项指标,判断任务是否非法,跳转到判断模块。

本发明实现方案的具体过程如下:

1、基础框架(framework)

hadoop、mysql

2、各模块结构(modules)

3、约定和规范

●通过调用hadoop的api获取的任务运行信息。

●运行过程中获取任务运行信息失败的,表示任务已经不存在,放弃对该任务的检查

●采用数据库记录任务的输出信息

4、格式化参数(params)

●输入(in):

hadoop的任务列表信息

●输出(out):

发送杀死任务的邮件,任务运行信息

5、编码实现(programs)

●coding:按照约定的格式和协议实现任务检查程序

6、构建部署(build)

●ubuntu12.04.4

●mysql5.5

●shell

以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1