CN104156505B - 一种基于用户行为分析的Hadoop集群作业调度方法及装置 - Google Patents

一种基于用户行为分析的Hadoop集群作业调度方法及装置 Download PDF

Info

Publication number
CN104156505B
CN104156505B CN201410350690.3A CN201410350690A CN104156505B CN 104156505 B CN104156505 B CN 104156505B CN 201410350690 A CN201410350690 A CN 201410350690A CN 104156505 B CN104156505 B CN 104156505B
Authority
CN
China
Prior art keywords
resource
resource group
daily record
record data
data table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410350690.3A
Other languages
English (en)
Other versions
CN104156505A (zh
Inventor
陈重韬
王伟平
孟丹
崔甲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201410350690.3A priority Critical patent/CN104156505B/zh
Publication of CN104156505A publication Critical patent/CN104156505A/zh
Application granted granted Critical
Publication of CN104156505B publication Critical patent/CN104156505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于用户行为分析的Hadoop集群作业调度方法及装置,包括以下步骤:收集Hadoop集群产生的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中,并定时将存储于数据库中的日志数据表转存到Hive集群中;根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量及各资源组提交作业的作业类型;根据每个资源组提交作业的作业类型和作业数量,确定各资源组的最小资源占用限额;在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。本发明能够为作业级的调度提供准确和真实的依据。

Description

一种基于用户行为分析的Hadoop集群作业调度方法及装置
技术领域
本发明涉及云计算领域,特别涉及一种基于用户行为分析的Hadoop集群作业调度方法及装置。
背景技术
Hadoop作为MapReduce和GFS的开源实现已广泛应用于工业界和研究领域,而处于计算核心位置的MapReduce也成为最成功的海量数据计算模型,其中MapReduce作业调度策略作为一个关键问题,将直接影响到海量数据查询处理的执行效率。
MapReduce作业调度策略一般分为两个层面,作业层和任务层。作业层主要考虑不同用户提交的作业以何种方式和顺序开始运行,而任务层则是考虑已被调度的作业内的Task在哪个申请节点运行。
目前,关于MapReduce的作业层面上的作业调度策略的研究很多。FIFO调度算法是最简单直观的MapReduce调度算法。所有作业都被提交到一个队列中,按照提交的时间先后顺序选择一个作业执行。Fair Scheduler调度算法由Facebook公司提出,它的目标是使每个用户都能公平的共享整个集群的计算能力,它主要包括两个部分,最小共享资源量以及公平共享资源量。FairScheduler调度算法为每个用户组建立一个单独的作业池,每个作业池都拥有最小共享资源,集群剩余的资源以尽量公平的方式分配给各用户组。当用户组需要的资源小于最小共享资源时,空闲资源可根据公平原则分配给相应的用户组进行使用,待该用户组需求资源量增加并超过等待时间时,再以抢占的方式将属于自己的资源占用。Capacity Scheduler调度算法由雅虎公司提出,它支持多个队列,每个队列可配置一定的资源。在队列内部采用FIFO调度。与公平调度相似,计算能力调度允许各个队列分享己经被分配但处于空闲状态的资源,但不支持抢占,只有当前作业释放相应资源且原队列有新的资源请求时,才会将资源分配回所属队列。
上述三种调度算法为现在Hadoop中基础的调度算法。FIFO调度算法实现简单,调度开销小,能够保证作业按照时间顺序运行,但FIFO调度容易出现大作业独占集群资源,造成任务的阻塞,从而使小作业往往得不到快速的响应,而一般情况下小作业均有实时性要求。Fair Scheduler调度算法,保证了不同用户在资源分配上的公平性。然而它只专注于用户的公平而忽视了作业之间的差异,也未充分考虑用户组需求随时间的变化。CapacityScheduler保证了同一用户的作业不能独占资源,并且能够有效地处理各类型的作业,但是它并没有全面考虑各资源特征的分配是否满足作业多样的服务要求。
当前公平调度器的最低资源配额的确定一旦确定,就不会再更改。首先,这种方式没有充分考虑到各用户组资源需求在时间上的动态变化,从而导致在资源分配上不公平情况的出现,尤其是在某一时间段内,大部分资源组均需要最低配额而某一个或多个资源组出现作业集中提交的情况。其次,原有的调度算法并未考虑各用户组所提交的作业类型的区别,并没有按照实际的作业资源需求类型进行划分,容易造成作业不公平调度情况的出现。
综上所述,虽然现有的调度算法,在保证作业的执行以及资源的合理分配上做了一定的优化,但是都没有充分考虑用户组需求的动态变化,造成资源分配不合理。
发明内容
本发明所要解决的技术问题是提供一种实现用户资源的动态公平分配的基于用户行为分析的Hadoop集群作业调度方法及装置。
本发明解决上述技术问题的技术方案如下:一种基于用户行为分析的Hadoop集群作业调度方法,包括以下步骤:
步骤1:收集Hadoop集群产生的用于记录各资源组提交的作业的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中,并定时将存储于数据库中的日志数据表转存到Hive集群中;
步骤2:根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量;
步骤3:根据存储于Hive集群中的日志数据表,得到各资源组提交作业的作业类型;
步骤4:根据每个资源组提交作业的作业类型和该资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,确定各资源组的最小资源占用限额;
步骤5:在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。
本发明的有益效果是:通过日志分析,能够更真实的反映集群以及作业的一般特点;通过统计作业提交的一般规律,能够为作业级的调度提供准确和真实的依据;通过统计作业的类型及各类Task的运行时间,能够更准确的进行作业在任务级的调度。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述作业类型包括作业的大小和作业的资源占用量。
进一步,当删除任一资源组时,将该资源组所占用的资源按其他未被删除的资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,分配给其他未被删除的资源组。
进一步,当增加任一资源组时,为该增加的资源组分配一个默认的最小资源占用限额,随着该增加的资源组提交的作业的作业数量的变化,重新计算每个资源组的最小资源占用限额。
进一步,所述数据库,用于存储实时查询各个作业的执行状态的日志数据表;所述Hive集群,用于永久保存日志数据表。
进一步,一种基于用户行为分析的Hadoop集群作业调度装置,包括Hadoop集群,收集创建模块,数据库,转存模块,Hive集群,计算模块和调度模块;
所述Hadoop集群,用于产生用于记录各资源组提交的作业的日志文件;
所述收集创建模块,用于收集Hadoop集群产生的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中;
所述数据库,用于存储创建模块发送的日志数据表;
所述转存模块,用于定时将存储于数据库中的日志数据表转存到Hive集群中;
所述Hive集群,用于存储转存模块发送的日志数据表;
所述计算模块,用于根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量;根据存储于Hive集群中的日志数据表,得到各资源组提交作业的作业类型;根据每个资源组提交作业的作业类型和该资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,确定各资源组的最小资源占用限额;
所述调度模块,用于在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。
进一步,所述作业类型包括作业的大小和作业的资源占用量。
进一步,当删除任一资源组时,将该资源组所占用的资源按其他未被删除的资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,分配给其他未被删除的资源组。
进一步,当增加任一资源组时,为该增加的资源组分配一个默认的最小资源占用限额,随着该增加的资源组提交的作业的作业数量的变化,重新计算每个资源组的最小资源占用限额。
进一步,所述数据库,用于存储实时查询各个作业的执行状态的日志数据表;所述Hive集群,用于永久保存日志数据表。
附图说明
图1为本发明方法步骤流程图;
图2为本发明装置结构图。
附图中,各标号所代表的部件列表如下:
1、Hadoop集群,2、收集创建模块,3、数据库,4、转存模块,5、Hive集群,6、计算模块,7、调度模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明方法步骤流程图;图2为本发明装置结构图。
实施例1
一种基于用户行为分析的Hadoop集群作业调度方法,包括以下步骤:
步骤1:收集Hadoop集群产生的用于记录各资源组提交的作业的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中,并定时将存储于数据库中的日志数据表转存到Hive集群中;
步骤2:根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量;
步骤3:根据存储于Hive集群中的日志数据表,得到各资源组提交作业的作业类型;
步骤4:根据每个资源组提交作业的作业类型和该资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,确定各资源组的最小资源占用限额;
步骤5:在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。
所述作业类型包括作业的大小和作业的资源占用量。
当删除任一资源组时,将该资源组所占用的资源按其他未被删除的资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,分配给其他未被删除的资源组。
当增加任一资源组时,为该增加的资源组分配一个默认的最小资源占用限额,随着该增加的资源组提交的作业的作业数量的变化,重新计算每个资源组的最小资源占用限额。
所述数据库,用于存储实时查询各个作业的执行状态的日志数据表;所述Hive集群,用于永久保存日志数据表。
一种基于用户行为分析的Hadoop集群作业调度装置,包括Hadoop集群1,收集创建模块2,数据库3,转存模块4,Hive集群5,计算模块6和调度模块7;
所述Hadoop集群1,用于产生用于记录各资源组提交的作业的日志文件;
所述收集创建模块2,用于收集Hadoop集群产生的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中;
所述数据库3,用于存储创建模块2发送的日志数据表;
所述转存模块4,用于定时将存储于数据库中的日志数据表转存到Hive集群中;
所述Hive集群5,用于存储转存模块4发送的日志数据表;
所述计算模块6,用于根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量;根据存储于Hive集群中的日志数据表,得到各资源组提交作业的作业类型;根据每个资源组提交作业的作业类型和作业数量,确定各资源组的最小资源占用限额;
所述调度模块7,用于在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。
所述作业类型包括作业的大小和作业的资源占用量。
当删除任一资源组时,将该资源组所占用的资源按其他未被删除的资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,分配给其他未被删除的资源组。
当增加任一资源组时,为该增加的资源组分配一个默认的最小资源占用限额,随着该增加的资源组提交的作业的作业数量的变化,重新计算每个资源组的最小资源占用限额。
所述数据库,用于存储实时查询各个作业的执行状态的日志数据表;所述Hive集群,用于永久保存日志数据表。
在具体实施中,本发明主要包含三个方面:(1)Hadoop集群作业运行日志分析,得到相应的统计数据;(2)根据统计结果,分时段确定各用户组的最低资源配额;(3)根据统计结果,综合运行时集群状态,选择备份任务节点。
当前公平调度器的最低资源配额一旦确定,就不会再更改。首先,这种方式没有充分考虑到各用户组资源需求在时间上的动态变化,从而导致在资源分配上不公平情况的出现,尤其是在某一时间段内,大部分资源组均需要最低配额而某一个或多个资源组出现作业集中提交的情况。其次,原有的调度算法并未考虑各用户组所提交的作业类型的区别,并没有按照实际的作业资源需求类型进行划分,容易造成作业不公平调度情况的出现。
基于上述原因,本发明通过对周期时间内用户组提交作业的情况进行分析挖掘,找到各用户组提交作业随时间变化的一般规律,以及各用户组所提交作业类型的规律,以此为依据,对现有的调度算法进行优化改进。
通过对现有集群进行分析发现,绝大部分作业都是定时任务,有少部分是即时任务。因而,找到各用户组提交作业随时间变化的规律,并依据此信息动态的规划各用户组在整个集群中的资源配额成为可行。另外,各用户组所提交的作业之间存在差异,某些任务需占用大量的集群资源,且运行时间较长,而另一些作业则是占用少量集群资源,运行时间短,这类任务一般实时性要求较高。通过日志分析,可以找到各用户组提交作业的一般类型,包括作业的task数、占用CPU时间、占用内存大小、中间结果大小等数据,以这些数据和用户提交作业的一般规律相结合,便可更准确的确定个用户组最小共享资源。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于用户行为分析的Hadoop集群作业调度方法,其特征在于,包括以下步骤:
步骤1:收集Hadoop集群产生的用于记录各资源组提交的作业的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中,并定时将存储于数据库中的日志数据表转存到Hive集群中;
步骤2:根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量;
步骤3:根据存储于Hive集群中的日志数据表,得到各资源组提交作业的作业类型;
步骤4:根据每个资源组提交作业的作业类型和该资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,确定各资源组的最小资源占用限额;
步骤5:在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。
2.根据权利要求1所述的Hadoop集群作业调度方法,其特征在于:所述作业类型包括作业的大小和作业的资源占用量。
3.根据权利要求1所述的Hadoop集群作业调度方法,其特征在于:当删除任一资源组时,将该资源组所占用的资源按其他未被删除的资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,分配给其他未被删除的资源组。
4.根据权利要求1所述的Hadoop集群作业调度方法,其特征在于:当增加任一资源组时,为该增加的资源组分配一个默认的最小资源占用限额,随着该增加的资源组提交的作业的作业数量的变化,重新计算每个资源组的最小资源占用限额。
5.根据权利要求1所述的Hadoop集群作业调度方法,其特征在于:所述数据库,用于存储实时查询各个作业的执行状态的日志数据表;所述Hive集群,用于永久保存日志数据表。
6.一种基于用户行为分析的Hadoop集群作业调度装置,其特征在于:包括Hadoop集群(1),收集创建模块(2),数据库(3),转存模块(4),Hive集群(5),计算模块(6)和调度模块(7);
所述Hadoop集群(1),用于产生用于记录各资源组提交的作业的日志文件;
所述收集创建模块(2),用于收集Hadoop集群产生的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中;
所述数据库(3),用于存储创建模块(2)发送的日志数据表;
所述转存模块(4),用于定时将存储于数据库中的日志数据表转存到Hive集群中;
所述Hive集群(5),用于存储转存模块(4)发送的日志数据表;
所述计算模块(6),用于根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量;根据存储于Hive集群中的日志数据表,得到各资源组提交作业的作业类型;根据每个资源组提交作业的作业类型和该资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,确定各资源组的最小资源占用限额;
所述调度模块(7),用于在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。
7.根据权利要求6所述的Hadoop集群作业调度装置,其特征在于:所述作业类型包括作业的大小和作业的资源占用量。
8.根据权利要求6所述的Hadoop集群作业调度装置,其特征在于:当删除任一资源组时,将该资源组所占用的资源按其他未被删除的资源组提交作业的作业数量占所有资源组提交作业的作业数量的比例,分配给其他未被删除的资源组。
9.根据权利要求6所述的Hadoop集群作业调度装置,其特征在于:当增加任一资源组时,为该增加的资源组分配一个默认的最小资源占用限额,随着该增加的资源组提交的作业的作业数量的变化,重新计算每个资源组的最小资源占用限额。
10.根据权利要求6所述的Hadoop集群作业调度装置,其特征在于:所述数据库,用于存储实时查询各个作业的执行状态的日志数据表;所述Hive集群,用于永久保存日志数据表。
CN201410350690.3A 2014-07-22 2014-07-22 一种基于用户行为分析的Hadoop集群作业调度方法及装置 Active CN104156505B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410350690.3A CN104156505B (zh) 2014-07-22 2014-07-22 一种基于用户行为分析的Hadoop集群作业调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410350690.3A CN104156505B (zh) 2014-07-22 2014-07-22 一种基于用户行为分析的Hadoop集群作业调度方法及装置

Publications (2)

Publication Number Publication Date
CN104156505A CN104156505A (zh) 2014-11-19
CN104156505B true CN104156505B (zh) 2017-12-15

Family

ID=51882003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410350690.3A Active CN104156505B (zh) 2014-07-22 2014-07-22 一种基于用户行为分析的Hadoop集群作业调度方法及装置

Country Status (1)

Country Link
CN (1) CN104156505B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893628A (zh) * 2016-05-17 2016-08-24 中国农业银行股份有限公司 一种数据实时收集***及方法
CN107688492B (zh) * 2016-08-05 2021-11-09 阿里巴巴集团控股有限公司 资源的控制方法、装置和集群资源管理***
CN108491255B (zh) * 2018-02-08 2020-11-03 昆仑智汇数据科技(北京)有限公司 自助式MapReduce数据优化分配方法及***
CN108446174B (zh) * 2018-03-06 2022-03-11 苏州大学 基于资源预分配与公共引导代理的多核作业调度方法
CN111338785A (zh) * 2018-12-18 2020-06-26 北京京东尚科信息技术有限公司 资源调度方法及装置、电子设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674194A (zh) * 2009-09-28 2010-03-17 北京航空航天大学 基于日志特征分析的机群负载模型及其建模方法
CN103744734A (zh) * 2013-12-24 2014-04-23 中国科学院深圳先进技术研究院 一种任务作业处理方法、装置及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674194A (zh) * 2009-09-28 2010-03-17 北京航空航天大学 基于日志特征分析的机群负载模型及其建模方法
CN103744734A (zh) * 2013-12-24 2014-04-23 中国科学院深圳先进技术研究院 一种任务作业处理方法、装置及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《多资源公平调度器在Hadoop中的实现》;马肖燕,洪爵;《集成技术》;20120930;第1卷(第3期);第68页 *

Also Published As

Publication number Publication date
CN104156505A (zh) 2014-11-19

Similar Documents

Publication Publication Date Title
CN110163474A (zh) 一种任务分配的方法及设备
CN104156505B (zh) 一种基于用户行为分析的Hadoop集群作业调度方法及装置
CN101938416B (zh) 一种基于动态重配置虚拟资源的云计算资源调度方法
CN108874538B (zh) 用于调度量子计算机的调度服务器、调度方法及应用方法
CN103838621B (zh) 用于调度例行作业的方法和***、调度节点
CN103064744B (zh) 一种基于SLA的面向多层Web应用的资源优化方法
CN109857535B (zh) 面向Spark JDBC的任务优先级控制的实现方法及装置
CN104023042B (zh) 云平台资源调度方法
CN103297499A (zh) 一种基于云平台的调度方法及***
CN110008024A (zh) 一种多维约束下基于延迟决策的容器调度方法以及装置
CN106681823A (zh) 一种处理MapReduce数据倾斜的负载均衡方法
CN107515784A (zh) 一种在分布式***中计算资源的方法与设备
CN107861804A (zh) 大数据计算方法、计算***、计算机设备及可读存储介质
CN109799956A (zh) 一种存储控制器及io请求处理方法
CN105430027A (zh) 基于多资源尺度的负载均衡动态预调度方法
CN114327811A (zh) 一种任务调度方法、装置、设备及可读存储介质
CN108428051A (zh) 面向大数据平台基于最大化收益的MapReduce作业调度方法及装置
Hu et al. FlowTime: Dynamic scheduling of deadline-aware workflows and ad-hoc jobs
CN110084507B (zh) 云计算环境下分级感知的科学工作流调度优化方法
Perwej The ambient scrutinize of scheduling algorithms in big data territory
CN110519386A (zh) 云环境下基于数据聚类的弹性资源供应方法和装置
Shu-Jun et al. Optimization and research of hadoop platform based on fifo scheduler
CN109062683A (zh) 主机资源分配的方法、装置及计算机可读存储介质
CN108958919A (zh) 一种云计算中有期限约束的多dag任务调度费用公平性评估模型
CN117707759A (zh) 一种多租户gpu集群弹性配额调度方法和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant