CN104156505A - 一种基于用户行为分析的Hadoop集群作业调度方法及装置 - Google Patents
一种基于用户行为分析的Hadoop集群作业调度方法及装置 Download PDFInfo
- Publication number
- CN104156505A CN104156505A CN201410350690.3A CN201410350690A CN104156505A CN 104156505 A CN104156505 A CN 104156505A CN 201410350690 A CN201410350690 A CN 201410350690A CN 104156505 A CN104156505 A CN 104156505A
- Authority
- CN
- China
- Prior art keywords
- resource
- resource group
- data table
- record data
- daily record
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于用户行为分析的Hadoop集群作业调度方法及装置,包括以下步骤:收集Hadoop集群产生的日志文件,根据日志文件创建日志数据表,将日志数据表存储于数据库中,并定时将存储于数据库中的日志数据表转存到Hive集群中;根据存储于Hive集群中的日志数据表,得到每个资源组在任一时间区间内提交作业的作业数量及各资源组提交作业的作业类型;根据每个资源组提交作业的作业类型和作业数量,确定各资源组的最小资源占用限额;在资源组提交作业后,根据该资源组对应的最小资源占用限额调度大于等于最小资源占用限额的资源进行处理提交的作业。本发明能够为作业级的调度提供准确和真实的依据。
Description
技术领域
本发明涉及云计算领域,特别涉及一种基于用户行为分析的Hadoop集群作业调度方法及装置。
背景技术
Hadoop作为MapReduce和GFS的开源实现已广泛应用于工业界和研究领域,而处于计算核心位置的MapReduce也成为最成功的海量数据计算模型,其中MapReduce作业调度策略作为一个关键问题,将直接影响到海量数据查询处理的执行效率。
MapReduce作业调度策略一般分为两个层面,作业层和任务层。作业层主要考虑不同用户提交的作业以何种方式和顺序开始运行,而任务层则是考虑已被调度的作业内的Task在哪个申请节点运行。
目前,关于MapReduce的作业层面上的作业调度策略的研究很多。FIFO调度算法是最简单直观的MapReduce调度算法。所有作业都被提交到一个队列中,按照提交的时间先后顺序选择一个作业执行。Fair Scheduler调度算法由Facebook公司提出,它的目标是使每个用户都能公平的共享整个集群的计算能力,它主要包括两个部分,最小共享资源量以及公平共享资源量。FairScheduler调度算法为每个用户组建立一个单独的作业池,每个作业池都拥有最小共享资源,集群剩余的资源以尽量公平的方式分配给各用户组。当用户组需要的资源小于最小共享资源时,空闲资源可根据公平原则分配给相应的用户组进行使用,待该用户组需求资源量增加并超过等待时间时,再以抢占的方式将属于自己的资源占用。Capacity Scheduler调度算法由雅虎公司提出,它支持多个队列,每个队列可配置一定的资源。在队列内部采用FIFO调度。与公平调度相似,计算能力调度允许各个队列分享己经被分配但处于空闲状态的资源,但不支持抢占,只有当前作业释放相应资源且原队列有新的资源请求时,才会将资源分配回所属队列。
上述三种调度算法为现在Hadoop中基础的调度算法。FIFO调度算法实现简单,调度开销小,能够保证作业按照时间顺序运行,但FIFO调度容易出现大作业独占集群资源,造成任务的阻塞,从而使小作业往往得不到快速的响应,而一般情况下小作业均有实时性要求。Fair Scheduler调度算法,保证了不同用户在资源分配上的公平性。然而它只专注于用户的公平而忽视了作业之间的差异,也未充分考虑用户组需求随时间的变化。Capacity Scheduler保证了同一用户的作业不能独占资源,并且能够有效地处理各类型的作业,但是它并没有全面考虑各资源特征的分配是否满足作业多样的服务要求。
当前公平调度器的最低资源配额的确定一旦确定,就不会再更改。首先,这种方式没有充分考虑到各用户组资源需求在时间上的动态变化,从而导致在资源分配上不公平情况的出现,尤其是在某一时间段内,大部分资源组均需要最低配额而某一个或多个资源组出现作业集中提交的情况。其次,原有的调度算法并未考虑各用户组所提交的作业类型的区别,并没有按照实际的作业资源需求类型进行划分,容易造成作业不公平调度情况的出现。
综上所述,虽然现有的调度算法,在保证作业的执行以及资源的合理分配上做了一定的优化,但是都没有充分考虑用户组需求的动态变化,造成资源分配不合理。
发明内容
本发明所要解决的技术问题是提供一种实现用户资源的动态公平分配的基于用户行为分析的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.根据权利要求1所述的Hadoop集群调度方法,其特征在于:当增加任一资源组时,为该增加的资源组分配一个默认的最小资源占用限额,随着该增加的资源组提交的作业的作业数量的变化,重新计算每个资源组的最小资源占用限额。
10.根据权利要求1所述的Hadoop集群调度方法,其特征在于:所述数据库,用于存储实时查询各个作业的执行状态的日志数据表;所述Hive集群,用于永久保存日志数据表。
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 true CN104156505A (zh) | 2014-11-19 |
CN104156505B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893628A (zh) * | 2016-05-17 | 2016-08-24 | 中国农业银行股份有限公司 | 一种数据实时收集系统及方法 |
CN107688492A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 资源的控制方法、装置和集群资源管理系统 |
CN108446174A (zh) * | 2018-03-06 | 2018-08-24 | 苏州大学 | 基于资源预分配与公共引导代理的多核作业调度方法 |
CN108491255A (zh) * | 2018-02-08 | 2018-09-04 | 昆仑智汇数据科技(北京)有限公司 | 自助式MapReduce数据优化分配方法及系统 |
CN111338785A (zh) * | 2018-12-18 | 2020-06-26 | 北京京东尚科信息技术有限公司 | 资源调度方法及装置、电子设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674194A (zh) * | 2009-09-28 | 2010-03-17 | 北京航空航天大学 | 基于日志特征分析的机群负载模型及其建模方法 |
CN103744734A (zh) * | 2013-12-24 | 2014-04-23 | 中国科学院深圳先进技术研究院 | 一种任务作业处理方法、装置及系统 |
-
2014
- 2014-07-22 CN CN201410350690.3A patent/CN104156505B/zh active Active
Patent Citations (2)
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)
Title |
---|
马肖燕,洪爵: "《多资源公平调度器在Hadoop中的实现》", 《集成技术》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893628A (zh) * | 2016-05-17 | 2016-08-24 | 中国农业银行股份有限公司 | 一种数据实时收集系统及方法 |
CN107688492A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 资源的控制方法、装置和集群资源管理系统 |
CN107688492B (zh) * | 2016-08-05 | 2021-11-09 | 阿里巴巴集团控股有限公司 | 资源的控制方法、装置和集群资源管理系统 |
CN108491255A (zh) * | 2018-02-08 | 2018-09-04 | 昆仑智汇数据科技(北京)有限公司 | 自助式MapReduce数据优化分配方法及系统 |
CN108446174A (zh) * | 2018-03-06 | 2018-08-24 | 苏州大学 | 基于资源预分配与公共引导代理的多核作业调度方法 |
CN111338785A (zh) * | 2018-12-18 | 2020-06-26 | 北京京东尚科信息技术有限公司 | 资源调度方法及装置、电子设备、存储介质 |
CN111338785B (zh) * | 2018-12-18 | 2024-08-16 | 北京京东尚科信息技术有限公司 | 资源调度方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104156505B (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063336B (zh) | 一种分布式计算多应用功能异步并发调度方法 | |
US10474504B2 (en) | Distributed node intra-group task scheduling method and system | |
CN102387173B (zh) | 一种MapReduce系统及其调度任务的方法和装置 | |
CN103309946B (zh) | 多媒体文件处理方法、装置及系统 | |
CN109582448B (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN103491024B (zh) | 一种面向流式数据的作业调度方法及装置 | |
CN104156505A (zh) | 一种基于用户行为分析的Hadoop集群作业调度方法及装置 | |
CN103475538B (zh) | 一种基于多接口的自适应的云服务测试方法 | |
CN102254246A (zh) | 一种工作流管理方法及其系统 | |
CN102096599A (zh) | 一种多队列任务调度方法及相关系统和设备 | |
CN103309738A (zh) | 用户作业调度方法及装置 | |
CN106406987A (zh) | 一种集群中的任务执行方法及装置 | |
CN104391918A (zh) | 基于对等部署的分布式数据库查询优先级管理的实现方法 | |
CN102902592B (zh) | 一种集群计算资源的分区调度管理方法 | |
WO2015100995A1 (zh) | 一种智能服务调度方法 | |
CN103838621A (zh) | 用于调度例行作业的方法和系统、调度节点 | |
WO2018126771A1 (zh) | 一种存储控制器及io请求处理方法 | |
CN105389206A (zh) | 一种云计算数据中心虚拟机资源快速配置方法 | |
Ambike et al. | An optimistic differentiated job scheduling system for cloud computing | |
CN110716800B (zh) | 任务调度方法及装置、存储介质及电子设备 | |
CN103257896B (zh) | 一种云环境下的Max-D作业调度方法 | |
CN106131227A (zh) | 负载平衡方法、元数据服务器系统及负载平衡系统 | |
CN106681823A (zh) | 一种处理MapReduce数据倾斜的负载均衡方法 | |
Wang et al. | Task scheduling for MapReduce in heterogeneous networks | |
CN114327811A (zh) | 一种任务调度方法、装置、设备及可读存储介质 |
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 |