专业期刊论文发表

文心期刊联盟

您现在的位置是:首页 > 科技期刊 > 科技论文

科技论文

基于Hadoop视频转码的任务调度算法研究

2024-09-10科技论文
网络视频的快速发展,如何为移动终端提供可靠的服务是目前互联网视频转码面临的一项严峻挑战。视频数量的不断增加,让传统的视频转码技术的存储能力以及处理能力都无法满足人们

网络视频的快速发展,如何为移动终端提供可靠的服务是目前互联网视频转码面临的一项严峻挑战。视频数量的不断增加,让传统的视频转码技术的存储能力以及处理能力都无法满足人们的需求,因此,研究人员提出了一种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  建立问题模型

建立问题模型需要考虑如何将复杂的任务放在多个不同处理能力的节点中,在调度算法中,执行效率最高的是,Min-min,与Max-Min相比,具有较好的负载能力。而Max-Min算法能够将所有节点的时间进行平均,这样能够达到提高转码效率的目的。建立数学模型的方法为,比如有n段视频,复杂程度不同,m个处理节点,转码时间要与视频复杂度与机器处理能力进行对比,将视频块发到机器上的转码时间为:

当视频块完成分配之后,机器会获得视频集合,完成时间为:

如果设A={a1,a2,...,an},R(i):J>A,则表示将所有的视频块都放在了机器中进行处理,目的就是为了找到最佳的调度算法以完成处理时间。先找到能够完成视频块处理最长的机器,然后将其最小化,这样能够提高整个转码的效率。如:

3.1.1  参数评估

3.1.1.1  节点转码

影响机器转码的原因很多,比如处理器性能不好、内存不足或者网络信号不好等,根据PageRank算法评估机器的转码,设定配置方式,不同的网络情况需要有不同的配置方案,然后根据程序测试不同模块的数据,再进行算法分析。可以将其分为四步:(1)运行程序,生成数据矩阵,测试输出值;(2)对原始数据进行分析,将其看成列向量,每一列表示输出数据的序列;(3)计算矩阵A,A=correlation(d1,d2,),d1=1,2,3,4,d2=1,2,3,...,7;(4)使用PageRank计算出得分,得分最高的一项表示该项的变化特征最多,得分最低的一项表示具有与其他测试项不同的特征。根据参考机器计算出其他机器的转码能力。

3.1.1.1.1  Min-MM算法

Min-MM算法是将背包问题与Max-Min算法进行结合,将平均转码的时间作为转码时间的节点,然后计算每一台机器接收信息的复杂程度,根据复杂程度将视频块分布到各个机器中进行转码处理。首先要先设定转码的时间,视频块集合为:

机器的处理能力为:在理想的状态下,需要将视频块分配到不同的机器中,得到的平均转码时间为:

faveragesum(c)/sum(p)

机器在faverage时间内要完成视频复杂度,公式为:

Vj=pj×faverage

3.1.1.1.2  虚拟背包

将n个视频块根据不同的复杂度进行排序,按照降序的方式从高到低进行排列,在m台机器上,根据机器的处理能力也进行排序,从强到弱进行排列。处理能力较强的机器掌握主动权,能够选择要处理的视频块,如果计算的值;如果机器停止选择;否则继续。其中,vj*表示已经复杂程度。当机器选择完视频块之后,会残留一些剩余的视频块,此时会出现一种情况,有些机器选择的视频复杂程度没有达到要求,所以在视频块的分配流程中会出现空白,这种情况需要采用Max-Min算法将残留的视频块进行发送。

4  实验分析

在Hadoop集群中建立多台服务器,服务器的型号也不同,将其中一台服务器作为NameNode,安装Avidemux,剩余机器为DateNodes,安装ffmpeg。使用云转码系统验证视频的格式,使用Min-MM算法进行对比。视频格式有mp4、mkv以及ts等,记录测试的时间;改变视频的大小,视频内存有5G、8G、16G。如果Hadoop集群中有多个节点,需要使用Min-MM算法进行转码时间前后的对比。

分析实验环境,Hadoop转码系统支持多种格式的互相转换,其中mp4格式转码时间较长,ts转码时间较短; 当使用Min-MM算法之后,转码的时间明显加快,如图1所示。

图1:使用Min-MM前后的转码对比

5  结语

Hadoop视频转码框架用于处理大量的视频信息效果良好,在此基础上增加任务调度算法Min-MM,使处理的时间更快,能够在兼容多种格式的同时依然能够达到较快的转码速度。通过Hadoop平台和任务调度算法的结合,大大提高了转码效率,提升了转码系统的性能。

文章评论

客服在线

服务时间

周一至周日 9:00-21:00