论文部分内容阅读
【摘 要】目前的分布式转码系统忽略了计算节点的处理能力,分配的转码任务量过大,容易对转码造成影响,降低转码效率。文章针对这一问题,提出一种新的算法,即任务调度算法,建立在Hadoop平台上进行视频转码,将视频分成不同段,根据复杂程度进行转码映射,提高转码处理能力,让节点获得更多视频块,使所有的计算阶段能够达到平衡。经过实验证明,基于Hadoop视频转码的任务调度算法能够显著提升转码效率,改善转码系统的性能。
【关键词】Hadoop;视频转码;任务调度算法
【中图分类号】TP338.8 【文献标识码】A 【文章编号】1674-0688(2018)12-0067-02
如今,网络视频快速发展,如何为移动终端提供可靠的服务是目前互联网视频转码面临的一项严峻挑战。视频数量不断增加,导致传统视频转码技术的存储能力及处理能力无法满足人们的需求,因此研究人员提出了一种Hadoop视频转码系统以提高视频转码效率。现有的视频转码系统没有将机器处理转码任务量考虑其中,一种关于任务调度的算法将输入的视频进行分段处理,然后根据视频的复杂程度进行映射,减少转码时间,提高转码效率。
1 Hadoop
Hadoop是一个转码框架,用于处理海量数据,具有可用性、健壮性及可扩展性特点。Hadoop平台由HDFS和MapReduce两部分共同组成Hadoop系统。MapReduce计算框架搭建在HDFS分布式文件系统之上,用户只需要编写map()函数与reduce()函数即可完成分布式程度的设计。HDFS最基本的内容是数据块,数据块可以保存比较大的文件、简化存储系统、便于数据复制等。Hadoop集群中的NameNode用来管理整个系统,主要职责是对文件系统进行管理。MapReduce采用M/S架构,当工作人员在Hadoop中编写一个MapReduce程序后,通过Client将程序编号发给JobTracker,编程人员用“作业”表示MapReduce,而每一个编写好的“作业”会被分解成若干个“任务”,每一个“任务”只有获取资源后才能够执行。
2 云转码
视频通过Avidemux视频编辑器进行去杂质处理,通过map()函数对ffmpeg进行封装。ffmpeg是一种不收费的软件,能够对视频进行转码处理。当海量的视频转码任务都聚集在Hadoop集群中时,系统需要对任务进行分解,将一个个小任务分配到阶段中,通过Hadoop的计算功能实现多视频同时转码。系统对用户的视频要求进行处理时,具体步骤如下:用户先发出视频请求,然后服务器根据用户提供的设备参数向Streaming Server发出请求,随后检查与用户请求相符合的数据;如果符合,将视频数据取出返回给用户;如果不符合,需要向NameNode发出转码命令,随后进行分布式转码,转码完成后将视频文件返回,然后将视频返回给用户。
3 任务调度算法
3.1 参数评估
3.1.1 节点转码
影响机器转码的原因很多,比如处理器性能不好、内存不足或者网络信号不好等,根据PageRank算法评估机器的转码,设定配置方式,不同的网络情况需要有不同的配置方案,然后根据程序测试不同模块的数据进行算法分析。可以将其分为4个步骤:①运行程序,生成数据矩阵,测试输出值;②对原始数据进行分析,将其看成列向量,每一列表示输出数据的序列;③计算矩阵A,A=correlation(d1,d2),d1=1,2,3,4,d2=1,2,3,…,7;④使用PageRank计算出得分,得分最高的一项表示该项的变化特征最多,得分最低的一项表示具有与其他测试项不同的特征。根据参考机器计算出其他机器的转码能力。
3.1.2 虚拟背包
将n个视频块根据不同的复杂度进行排序,按照降序的方式从高到低进行排列,在m台机器上,根据机器的处理能力,从强到弱进行排列。处理能力较强的机器掌握主动权,能够选择要处理的视频块,vi*+cj<vj,vj*+ci+ci+1>vj,计算vj*+cj+ci+2的值;如果vj*+cj+ci+2≤vj,机器停止选择;否则继续。其中,vj*表示已经复杂程度。当机器选择完视频块后,会残留剩余的视频块,此时会出现空白情况。有些机器选择的视频复杂程度没有达到要求,所以在视频块的分配流程中会出现空白,这种情况需要采用Max-Min算法将残留的视频块进行发送。
3.2 Min-MM算法
Min-MM算法是将背包问题与Max-Min算法进行结合,将平均转码时间作为转码时间的节点,然后计算每一台机器接收信息的复杂程度,根据复杂程度将视频块分布到各个机器中进行转码处理。首先要设定转码时间,视频块集合为:
sum(c)=■ci(1)
机器的处理能力为:
sum(p)=■pj(2)
在理想状态下,需要将视频块分配到不同的机器中,得到的平均转码时间为:
faveragesum(c)/sum(p) (3)
机器在faverage时间内要完成视频复杂度,公式为:
Vj=pj×faverage(4)
3.3 建立問题模型
建立问题模型需要考虑如何将复杂的任务放在多个不同处理能力的节点中,在调度算法中,执行效率最高的是Min-Min,它与Max-Min相比,具有较好的负载能力。而Max-Min算法能够将所有节点的时间进行平均,这样能够达到提高转码效率的目的。建立数学模型的方法:比如有n段视频,复杂程度不同,m个处理节点,转码时间要与视频复杂度与机器处理能力进行对比,将视频块发到机器上的转码时间为:
tij=■(5) 当视频块完成分配后,机器会获得视频集合,完成时间为:
fsj=■tij=■■(6)
如果设A={a1,a2,...,an},R(i):J>A,则表示将所有的视频块都放在机器中进行处理,目的是为了找到最佳的调度算法以完成处理时间。先找到能够完成视频块处理最长的机器,然后将其最小化,这样能够提高整个转码效率。如:
■ ■ fsj(7)
A={a1,a2,...,an},
■sj=J,(8)
■si,sj∈A,si■sj=■
4 实验分析
在Hadoop集群中建立多台型号不同的服务器,将其中一台服务器作为NameNode,安装Avidemux,剩余机器为DateNodes,安装ffmpeg。使用云转码系统验证视频格式,使用Min-MM算法进行对比。视频格式有MP4、mkv、ts等,记录测试时间;改变视频大小,视频内存有5 G、8 G、16 G。如果Hadoop集群中有多个节点,需要使用Min-MM算法进行转码时间前后对比。
分析实验环境,Hadoop转码系统支持多种格式的互相转换,其中MP4格式转码时间较长,ts转码时间较短;当使用Min-MM算法后,转码时间明显加快,如图1所示。
5 结语
Hadoop视频转码框架用于处理大量的视频信息效果良好,在此基础上增加任务调度算法Min-MM,使处理时间更快,在兼容多种格式的同时依然能够达到较快的转码速度。通过Hadoop平台与任务调度算法相结合,大大提高了转码效率,提升了转码系统的性能。
参 考 文 献
[1]毕莎莎,陈清华,高煜红.基于Hadoop视频转码的任务调度算法[J].无线电通信技术,2014,40(2):63-66,85.
[2]李曌.基于Hadoop的调度算法研究与实现[D].成都:西南交通大学,2014.
[3]彭志伟,谷建华.一种基于动态资源采集的Hadoop作业调度算法[J].微电子学与计算机,2014,31(4):64-67.
[4]姜淼.Hadoop云平臺下调度算法的研究[D].长春:吉林大学,2012.
[5]万兵,黄梦醒,段茜.一种基于资源预取的Hadoop作业调度算法[J].计算机应用研究,2014,31(6):1639-1643.
【关键词】Hadoop;视频转码;任务调度算法
【中图分类号】TP338.8 【文献标识码】A 【文章编号】1674-0688(2018)12-0067-02
如今,网络视频快速发展,如何为移动终端提供可靠的服务是目前互联网视频转码面临的一项严峻挑战。视频数量不断增加,导致传统视频转码技术的存储能力及处理能力无法满足人们的需求,因此研究人员提出了一种Hadoop视频转码系统以提高视频转码效率。现有的视频转码系统没有将机器处理转码任务量考虑其中,一种关于任务调度的算法将输入的视频进行分段处理,然后根据视频的复杂程度进行映射,减少转码时间,提高转码效率。
1 Hadoop
Hadoop是一个转码框架,用于处理海量数据,具有可用性、健壮性及可扩展性特点。Hadoop平台由HDFS和MapReduce两部分共同组成Hadoop系统。MapReduce计算框架搭建在HDFS分布式文件系统之上,用户只需要编写map()函数与reduce()函数即可完成分布式程度的设计。HDFS最基本的内容是数据块,数据块可以保存比较大的文件、简化存储系统、便于数据复制等。Hadoop集群中的NameNode用来管理整个系统,主要职责是对文件系统进行管理。MapReduce采用M/S架构,当工作人员在Hadoop中编写一个MapReduce程序后,通过Client将程序编号发给JobTracker,编程人员用“作业”表示MapReduce,而每一个编写好的“作业”会被分解成若干个“任务”,每一个“任务”只有获取资源后才能够执行。
2 云转码
视频通过Avidemux视频编辑器进行去杂质处理,通过map()函数对ffmpeg进行封装。ffmpeg是一种不收费的软件,能够对视频进行转码处理。当海量的视频转码任务都聚集在Hadoop集群中时,系统需要对任务进行分解,将一个个小任务分配到阶段中,通过Hadoop的计算功能实现多视频同时转码。系统对用户的视频要求进行处理时,具体步骤如下:用户先发出视频请求,然后服务器根据用户提供的设备参数向Streaming Server发出请求,随后检查与用户请求相符合的数据;如果符合,将视频数据取出返回给用户;如果不符合,需要向NameNode发出转码命令,随后进行分布式转码,转码完成后将视频文件返回,然后将视频返回给用户。
3 任务调度算法
3.1 参数评估
3.1.1 节点转码
影响机器转码的原因很多,比如处理器性能不好、内存不足或者网络信号不好等,根据PageRank算法评估机器的转码,设定配置方式,不同的网络情况需要有不同的配置方案,然后根据程序测试不同模块的数据进行算法分析。可以将其分为4个步骤:①运行程序,生成数据矩阵,测试输出值;②对原始数据进行分析,将其看成列向量,每一列表示输出数据的序列;③计算矩阵A,A=correlation(d1,d2),d1=1,2,3,4,d2=1,2,3,…,7;④使用PageRank计算出得分,得分最高的一项表示该项的变化特征最多,得分最低的一项表示具有与其他测试项不同的特征。根据参考机器计算出其他机器的转码能力。
3.1.2 虚拟背包
将n个视频块根据不同的复杂度进行排序,按照降序的方式从高到低进行排列,在m台机器上,根据机器的处理能力,从强到弱进行排列。处理能力较强的机器掌握主动权,能够选择要处理的视频块,vi*+cj<vj,vj*+ci+ci+1>vj,计算vj*+cj+ci+2的值;如果vj*+cj+ci+2≤vj,机器停止选择;否则继续。其中,vj*表示已经复杂程度。当机器选择完视频块后,会残留剩余的视频块,此时会出现空白情况。有些机器选择的视频复杂程度没有达到要求,所以在视频块的分配流程中会出现空白,这种情况需要采用Max-Min算法将残留的视频块进行发送。
3.2 Min-MM算法
Min-MM算法是将背包问题与Max-Min算法进行结合,将平均转码时间作为转码时间的节点,然后计算每一台机器接收信息的复杂程度,根据复杂程度将视频块分布到各个机器中进行转码处理。首先要设定转码时间,视频块集合为:
sum(c)=■ci(1)
机器的处理能力为:
sum(p)=■pj(2)
在理想状态下,需要将视频块分配到不同的机器中,得到的平均转码时间为:
faveragesum(c)/sum(p) (3)
机器在faverage时间内要完成视频复杂度,公式为:
Vj=pj×faverage(4)
3.3 建立問题模型
建立问题模型需要考虑如何将复杂的任务放在多个不同处理能力的节点中,在调度算法中,执行效率最高的是Min-Min,它与Max-Min相比,具有较好的负载能力。而Max-Min算法能够将所有节点的时间进行平均,这样能够达到提高转码效率的目的。建立数学模型的方法:比如有n段视频,复杂程度不同,m个处理节点,转码时间要与视频复杂度与机器处理能力进行对比,将视频块发到机器上的转码时间为:
tij=■(5) 当视频块完成分配后,机器会获得视频集合,完成时间为:
fsj=■tij=■■(6)
如果设A={a1,a2,...,an},R(i):J>A,则表示将所有的视频块都放在机器中进行处理,目的是为了找到最佳的调度算法以完成处理时间。先找到能够完成视频块处理最长的机器,然后将其最小化,这样能够提高整个转码效率。如:
■ ■ fsj(7)
A={a1,a2,...,an},
■sj=J,(8)
■si,sj∈A,si■sj=■
4 实验分析
在Hadoop集群中建立多台型号不同的服务器,将其中一台服务器作为NameNode,安装Avidemux,剩余机器为DateNodes,安装ffmpeg。使用云转码系统验证视频格式,使用Min-MM算法进行对比。视频格式有MP4、mkv、ts等,记录测试时间;改变视频大小,视频内存有5 G、8 G、16 G。如果Hadoop集群中有多个节点,需要使用Min-MM算法进行转码时间前后对比。
分析实验环境,Hadoop转码系统支持多种格式的互相转换,其中MP4格式转码时间较长,ts转码时间较短;当使用Min-MM算法后,转码时间明显加快,如图1所示。
5 结语
Hadoop视频转码框架用于处理大量的视频信息效果良好,在此基础上增加任务调度算法Min-MM,使处理时间更快,在兼容多种格式的同时依然能够达到较快的转码速度。通过Hadoop平台与任务调度算法相结合,大大提高了转码效率,提升了转码系统的性能。
参 考 文 献
[1]毕莎莎,陈清华,高煜红.基于Hadoop视频转码的任务调度算法[J].无线电通信技术,2014,40(2):63-66,85.
[2]李曌.基于Hadoop的调度算法研究与实现[D].成都:西南交通大学,2014.
[3]彭志伟,谷建华.一种基于动态资源采集的Hadoop作业调度算法[J].微电子学与计算机,2014,31(4):64-67.
[4]姜淼.Hadoop云平臺下调度算法的研究[D].长春:吉林大学,2012.
[5]万兵,黄梦醒,段茜.一种基于资源预取的Hadoop作业调度算法[J].计算机应用研究,2014,31(6):1639-1643.