2024年4月15日发(作者:)

应用 

Hadoop MapReduce是一种软件 

Reduce框架的Hadoop集群转码 

的厄数据,而DataNode仔储r灾 

并行计算模犁 

业务作为一种典犁的网络服务,具有极人的发展潜力和市场 

规模。与其它业务比较而言,视频业务有自身特点:视频处理 

过程坩计算能力要求高;视频的编码、解码、实时视频处理等 

技术,涉及到人量的空域频域的变换,在时效性较强的视频业 

务中,对计算能力构成很大挑战。Hadoop是‘ 个开源的云汁 

算框架,它是一个适合处理海量数据的并行编程系统,可以根 

据输入数据分布等信息自动创建多个并行子任务,并将子任 

务调度到合适的集群节点上并行执行。所以此模型能够很好 

地适用于多个视频文件同时转码。MapReduce是Hadoop系统 

的一个核心模块,它使得程序员不必关心节点失效、仟务火效 

及任务之间的数据等问题,而只需按照MapReduce编程规范 

MapReduce是由Google提出的云计算核心计算模犁,提 

供了比多线程编程更上一层的接口,『并蔽了许多细冉性问题, 

降低了开发者的入门门槛,提高了开发分布式 序的效率。 

MapReduce是一‘个用于大数据量计算的编程模犁,同时也地 

种高效的任务调度模型。在MapReduce计算模型lf1, 要用 

,rLl提供两个关键函数,map函数和reduce函数,即映射和规约 

两个主要过程。MapReduce框架运行于HDFS文件系上面,这 

两个函数对一组键值对(key/value)进行操作,得出 矧键值 

对:(input)<k1,vl>一>map一><k2,v2>一>combine一><k2,v2>一> 

reduce一><k3,v3>(output1。 

3. - ̄Hadoop的视频转码系统 

定义好map函数、reduce函数以及一些数据格式信息,即可完 

成分布式数据处理问题。 

2.Hadoop介绍 

3.1系统说明 

通过上面关于云计算和Hadoop相关知识的介绍,结合人 

批量、多用户视频转码对计算资源的需求,实现基J Hadoop 

云计算平台的视频转码。本项目视频处理类的实现是基于音 

视频转换软件fifnpeg,通过MapReduce中map函数封装ffm— 

peg转码功能,当大量视频转码任务提交到集群时,系统自动 

把仔务随机分配到集群节点上,利用集群系统计算能力币I】已 

有视频转码开源软件实现多视频同时存线转码。哭_r视频转 

码相关技术如码率转换、空间分辨率转换、时 分辨率转换、 

语法转换、容错视频转码等都交给已有的转码软件米实现。天 

谈到Hadoop不得不提到云计算,云计算是网格计算、分 

布式计算、并行计算、效应计算、网络存储、虚拟化、负载均衡 

等传统计算机技术和网络技术发展融合的产物。云计算的基 

本思想是通过构建大规模的基于集群系统的数据中心,将集 

群中的资源以虚拟化的形式向用户提供资源池。总之,云计算 

是在分布式计算的技术基础七的更高层次的“集中式”计算处 

理模式,Hadoop是由Apache开源组织的 ’‘’个分布式计算框 

架,可以在大量廉价的硬件设备组成的集群上运行应用程序, 

为应用程序提供了一组稳定可靠的接口,旨在构建一个有高 

叮靠性和良好扩展性的分布式系统,它是现在实现云计算的 

主要可选方式之一。Hadoop主要包括Hadoop分布式文件系 

f Hadoop集群的搭建可以通过网络、书籍找剑人晕相关资 

料,关于具体map函数、reduce函数以及key、value埘的划分 

等细节问题这里也不做详细解释,只给出了视频转码的于F发 

框架。 

统和计算模型MapReduce两个部分。 

2.1 HDFS分布式文件系统 

HDFS有着高容错性(fault—tolerent)的特点,设计用来部 

署在低廉的(1ow—cost)硬件上。它提供高传输率(high through— 

在本设计中,使用Java提供的Runtime类进仃奉地转 5 

功能代码的调用。这样做的好处是:不论本地视频处理功能足 

由什么编程语言实现的,只要最终的形式是可执彳]r文件,都uJ 

以被MapReduce框架调用。Runtime类可以耳义得Java虚拟机 

put)来访问应用程序的数据,适合那些有着超人数据集(1arge 

data set)的应用程序。HDFS采用Master/Slave架构,一个 

HDFS集群由 个NameNode节点和一组DataNode节点组 

的运行时环境,这个类有一个非常有用的 法exec(Stifng ClTI— 

dArray[])用于调用本地町执行文件。此 法的参数足嘤被|蒯 

用的可执行文件的命令行字符串数组。该亨符串数组的值取 

作者简介:张浩,男,湖南益阳人,硕士 主要研究方向:计算机应用,云计算 

36— 

决于视频处理功能的具体实现。 

3.2 Hadoop架构实现 

Hadoop系统包括分布式文件系统HDFS、并行计算框架 

MapReduce、作业队列管理模块。HDFS用于存储本地上传的视 

频文件,MapReduce框架用于完成视频转码功能,作业队列管 

理模块用于接收本地提交的任务信息,分析任务,将任务分割 

给云节点的计算单元,最后将视频转码后的信息写入数据库。 

视频转码框架如图1所示: 

图1 视频转码系统整体架构 

Hadoop系统中的视频作业控制模块主要由5个模块组 

成。各个模块的功能如下: 

(1)子作业流创建模块:一个视频处理作业可以划分为多 

个MapReduce子作业,根据视频开发用户提供的信息生成一 

系列的MapReduce作业流,包括视频作业子作业的个数和各 

个子作业之间的依赖关系。 

(2)视频作业信息模块:此模块用于维护一个视频作业完 

成状态信息和各个子作业的完成进度信息以及各个子作业的 

文件输出位置等信息。子作业提交模块根据此模块和子作业 

创建模块提供的信息决定哪个时间提交子作业流中的一个 

MapReduce子作业。 

(3)子作业提交模块:此模块对视频作业信息模块中的子 

作业信息进行监控,一旦满足作业提交的要求,从子作业流创 

建模块中取出一个子作业,提交到Hadoop中执行。 

(4)子作业监控模块:此模块负责向Hadoop系统获取各 

个子作业完成的状态信息,并负责更新视频作业信息的完成 

状态。 

(5)作业清理模块:此模块用于一个视频作业完成后,清 

理完成视频作业的过程中HDFS上的临时文件,并将视频作 

业的完成状态存入数据库中。 

|一-●—t、 

■舟 

t'ge 

匝 

暖 习 

匝 

腰垂鲴 —● 上, 

rii 

岖 --囤

哐 

ll’一ll 

’叵三童 =i 

匝匦貂 哐虱-.恒  I

I鱼 H_ 吒匾卜-(蕊 

●’———f—…

_; =_1 

 

—— 

;__J 

图2视频处理流程图 

视频处理流程如图2所示流程详细过程如下: 

云技术 确 

(1)用户将需要处理的视频上传到HDFS上; 

(2)将视频的处理信息和所要用到的处理函数传递到视频 

处理框架中; 

(3)子作业创建模块创建一个子作业流和一个视频作业信 

息模块; 

(4)子作业提交模块根据各个子作业流的依赖关系和各个 

子作业的完成状态向Hadoop系统提交MapReduce子作业; 

(5)Hadoop框架执行MapReduce子作业,将各个子作业 

的结果写入到HDFS中; 

(6)子作业监控模块从Hadoop系统中获取各个子作业的 

完成状态并更新视频作业信息模块; 

(7 整个视频作业完成后,作业清理模块负责清理HDFS 

上中间子作业输出的临时文件并更新视频作业信息模块。 

4.实验及结果分析 

集群使用两个节点作为转码工作节点,测试数据大小为 

700M,分布式文件系统块大小为64M。测试结果如表1所示。 

表1集群转码性能 

转码位置 视频分块大d ̄(Mb、 转码时间(S) 

本地 700 267 

l75 99 

I15 l13 

87 94 

70 l12 

Hadoop系统 

35 1O6 

l7 l12 

9 145 

4 25l 

从表1可以看出: 

(1)集群转码的时间平均时间约为单机转码所用时间的 

1/2,这个结果与期望的结果一致。这说明了将视频转码移植到 

Hadoop平台上可以提高转码效率。 

(21当视频文件分片远远小于文件系统分片的大小的时 

候,集群的转码性能会恶化。这表明Hadoop系统适合处理大 

数据量的应用。 

5.结束语 

本文主要论述了在Hadoop平台上视频转码的设计与实 

现。随着视频数据量的急剧增长,传统的集中式视频转码系统 

存在存储能力和数据处理能力不足、存储能力和处理能力不 

可扩展的缺点。Hadoop系统的并行任务分配、任务本地化、可 

扩展性和高容错性使得Hadoop系统在数据密集型任务处理 

方面有着优秀的表现。视频处理任务是一种数据密集型任务, 

将视频转码任务移植到Hadoop系统中可以充分利用现有的 

计算资源,使得视频转码效率得到提高。 

(下转第4O页) 

37— 

丰流的负载均衡策略的基础之 ,提出了基_r反馈的负载均 

衡策略。实践证明,采用新的负载均衡策略后系统存整体吞吐 

量方面有所提高,特别是在系统各个节点性能不一、系统提供 

的网络服务所访问的资源多样化的情况下,基于反馈机制的 

效果尤其明显。 

永壤^0 1 0 3 l 

』 l1 3f} ¨4,6 46 

6 7 8 9 t 0 lI 12 13 1 4 t5 16 1 7 l8 19∽ 

46 46 46 46 46 坼44 44 44 44 44 44 44 44 4-l 

参考文献: 

[1】.‘The Network Queuing System".Brent A.Kingsbury.Sterling Soft— 

ware,1992. 

{ I 、t2 28 42 44 l4 44 q4 44 44 44'44 .14 d2 42 42 42 42 42.12 42 42 

I|点3 24 34 34 3 4 34 34 34 34 34 34 34 3,4 34 34 34 34 34 32 32 32 

[2】须成忠,张德富,孙钟秀.“一种分布式动态负载平衡算法”[J].软件 

学报.1993.2. 

图2基于反馈的动态负载均衡算法的实验结果 

[3】刘海龙,张廷园,汤小春.“高性能计算环境下基于远程I/O负载平 

载节点,可以看出二_者在任务的分配上基本接近,而重载节点 

接受任务的权值比例明显少于另两个节点,因此在总体分配 

的任务数量上也少于其它两个节点。这说明提出的基于反馈 

的负载均衡算法是有效的,可以有效地按照云平台中各个节 

衡调度算法”[J】l计算机应用研究,2005.9. 

[4】W.Richard Stevens.UNIX网络编程(第一卷套接字API和 

X/Open传输接口API)[M].清华大学出版社,1999 

[5】W.Richard Stevens.UNIX网络编程(第:-g进程间通信)[M].清华 

大学出版社.2002. 

点的负载情况动态地接受任务。 

4.结束语 

本文论述了云计算模型下负载均衡策略的原理,在多种 

The Research of Load Balance Strategies Based on Cloud Computing 

Liu Ye Shen Xiaojun Liu Moxi 

(Zh@ang Electric Power Corporation Information Technology Center,Hangzhou 3 10007,Zh@an曲 

【AMtlaet 1 In order to tackle SO—called”resource starvation”problem,this paper introduces a number of load balance strategies, 

and presents a dynamic feedback—based load balance strategy.By experiments,feedback—based load balance strategy plays a signiicantf role 

in circumstances ofdiferent nodes and diverse network services. 

【Keywords】feedback mechanism;load balance;cloud computing 

(上接第37页) 

参考文献: 

[1]ChuckLan.Hadoop1NACTION[M],ManningPublications,2011. 

[2]Hadoop官方文档.http://Hadoop.apache.org/commorddoes/toturia1. 

htm[EB/OL]. 

Go to the Cloud?”.IEEE Computer Society,2010:81 ̄83. 

[4]FFMpeg.http://ffmpeg.org[EB/OL],2011. 

[5]Koetter R.Converting video formats with FFmpeg.Linux Journal 

archive,2006. 

[31K.Breitman,M.Endler,R.Pereira,M.Azambuja一”When TV Dies,Will It 

Application of Hadoop in Video Transcoding Based on Cloud Computing 

Zhang Hao Sun Shuxia 

fChengdu Universiy tofTechnology,Chengdu 6 10059,Sichuan) 

【Absm ̄】Video transcoding is a both compute-intensive and data-intensive task.It can consume a large amount of computer re— 

sources.Mapreduce is a software ramework fwhich is designed to support for distributed processing oflarge data sets.This paper aims to use 

open source video transcoding software(fmpeg)to create a Hadoop cluster to improve the speed ofvideo transcoding. 

【Keyworda 1 cloud computing;Hadoop;MapReduce;video transcoding;ffmpeg 

40 。——