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 。——
发布评论