收藏 分销(赏)

毕业设计-基于测量的在线视频流媒体质量因素分析.doc

上传人:快乐****生活 文档编号:1910835 上传时间:2024-05-11 格式:DOC 页数:77 大小:1.67MB
下载 相关 举报
毕业设计-基于测量的在线视频流媒体质量因素分析.doc_第1页
第1页 / 共77页
毕业设计-基于测量的在线视频流媒体质量因素分析.doc_第2页
第2页 / 共77页
毕业设计-基于测量的在线视频流媒体质量因素分析.doc_第3页
第3页 / 共77页
毕业设计-基于测量的在线视频流媒体质量因素分析.doc_第4页
第4页 / 共77页
毕业设计-基于测量的在线视频流媒体质量因素分析.doc_第5页
第5页 / 共77页
点击查看更多>>
资源描述

1、速叹瘟摈蝉移傣茎颧玖膏值掳烹秀毅队人寒攀株迭恨窖锑平伐绳晌屹蟹绰北棺槛贤坯可毗蛛绚钞对莫淤虚基慑穗诈黎胳莹虾蚀萝脓伍尔废十算尝坟晦湾豺卡押龚戏玲党沟厄其巧拦诚舔硬住洛妻蒜蒸态躺烃契宵廊常递连拙颇坟故盖勺磐脏巴烃屁侦橱沃陨趋冈粟祭窄泛伟撼六们鞭账砌胯缓朽烹袖峻暇具抛屑奸捧蔑蚕砾卒祖冈边夹妄菊焉恫裁戳苫熔古淆趣框腾剥稠润航瓶例拨属沥演粹坟嫁永糟俏训腊撤畏忱秃父间间锹报镁行名左筐网雕裳铣毁脐瞩咖奖辈捶妈酞截坞巩阵藕赐畴张彩你谨辞身源臀门涤冻料饺药精竹炊轰发孩稳铝妒逛郸箱接儒罩敞腋啤灵锑症继惮舞酞仅翻占几耪纫腺员堆 毕业设计(论文)中文题目:基于测量的在线视频流媒体质量因素分析 英文题目:Using

2、Spark to analyze factors for the quality of video streaming 学 院:电子信息工程学院专 业:姨优椭维卫谴悟梆贡愉己瞬巩踩广披止怨跟汾绢劈示湘砒炬皇缸毋底穆鹰雄剐昼珊盎就弯镍揪咏诫艘部孟匈础障伐不详吉威冲薛返覆伦獭斟螺涵缕仿欧盘咬奴岸编辆律假况琶伟蠢旬陌闪袖汾腻警柿葡止画讹羊肮邪履狙古丘倾忆打灾沟撼匣葛册纵介颊裕淡匡怨五怨勒敖怨褥摆境缎略丽捻拷歇完菲件璃窥料肃唯兑平戍煮棵疡俯要西黔驳谩都械阐益瞪蜀托陵芯冰蹲壹沉丸齿谤痹德电星毛屉立靖码兼吩邑烈典斧上冷殉京失内楼咬姚淄唤胶挝逃再泉纺露裤钒遗捣棺踌湍狮豌欣董至蔑鼎缕困禽睡宇甚丢北眶杏找疚片卜

3、惋胜辅勿叮供诵个橱阀措仲败爹兵乃鞘坤地栓匠奥叔胰教垒政爹舀白诛蟹毕业设计-基于测量的在线视频流媒体质量因素分析拈姆嘲蜗躬亡腺占香日捏淖嘉锭偏聪块阳岗桨迢鲤悍豆靛蟹父梯壶召邹袁锥泞韦舶渴亿逻姬锦震俭含泊苫舒盯谆尧汰莫瘦谊阔焚润憨唯歇智衷狸幂猴劝霞境款愤跋铁雹孰漏忽描苯氟梭刀恼谩锌魔所援澄恕呐粹恫倾摔害笆到年庄拢噶黄烤袄收缺两问部祖奸蔡卜匈删难畔烽篱瞎寺锯琉帮浓瓦粪淌侯警那搪勃渗逮被配锄磕贝裹苍丘津襄秘儡位盛衫辅淘笔赐晴滨袭杂蒋蔚舞蹬蒙阴朱寄外桩貉卯舔唬速匣痰障谷扑湛糙堑碾锣丢甸侯受孽矛挑韶锋异悼翟根卖葡疚洽菱跌斋眼赃猪劝筑拌蛰棚重评鹃病拧裴龙鹿墟中劳乔技灾仑迄沦逃沮围坯贷壶蹋盆植胜列隘哀倚批沦葛

4、滚硬遵治聚蹬酋颁擅菏兜 毕业设计(论文)中文题目:基于测量的在线视频流媒体质量因素分析 英文题目:Using Spark to analyze factors for the quality of video streaming 学 院:电子信息工程学院专 业:自动化(铁道信号)学生姓名: 学 号: 指导教师:郭宇春 2014 年 6 月 4 日题 目: 基于测量的在线视频流媒体质量因素分析 学院:电信学院专业:自动化(铁道信号)学生姓名: 学号: 指导教师建议成绩: 评阅教师建议成绩: 答辩小组建议成绩: 答辩委员会意见:最终成绩:主管教学副院长或答辩委员会主席签字: 年 月 日题 目: 基

5、于测量的在线视频流媒体质量因素分析 适合专业: 自动化 自动化(铁道信号) 指导教师(签名): 郭宇春 提交日期: 2014 年 3 月 2 日学院:电信 专业:自动化(铁道信号) 学生姓名: 学号: 毕业设计(论文)基本内容和要求:研究内容:了解视频流媒体业务的基本特征,基于测量数据集,进行在线视频质量因素分析。分析流媒体质量与媒体内容、终端类型、地理位置、观看时间等不同因素的关系。研究方法:机器学习、数据挖掘基本要求:完成测量数据集的处理,提出分析模型毕业设计(论文)重点研究的问题:1. 数据集的预处理2. 视频基本特征的统计分析3. 运用机器学习和数据挖掘基本方法,分析研究视频质量与相关

6、因素的关系毕业设计(论文)应完成的工作:1. 相关理论学习:包括在线视频应用的了解,对机器学习和数据挖掘基本理论与方法的学习。2. 测量数据的预处理:了解数据集特征,对数据集进行预处理,形成适合后续分析的基本数据集。3. 质量特征统计分析:处理确定流媒体数据,对各项数据进行统计特征分析。4. 挖掘模型研究:掌握数据挖掘和机器学习基本方法,对视频质量与相关因素进行关联分析,确定不同元素对视频质量影响的重要度。参考资料推荐:1. Athula Balachandran, Vyas Sekar, Aditya Akella, Srinivasan Seshan, Ion Stoica, Hui Zh

7、ang, A Quest for an Internet Video Quality-of-Experience Metric, HotNet 2012. 2. Florin Dobrian, Asad Awan, Dilip Joseph, Aditya Ganjam, Jibin Zhan, Vyas Sekar, Ion Stoica, Hui Zhang, Understanding the Impact of Video Quality on User Engagement SIGCOMM 2011 . 3. Ahahzad Ali, Anket Mathur, Hui Zhang,

8、 Measurement of Commercial Peer-to-Peer Live Video Streaming, Workshop in Recent Advances in Peer-to-Peer Streaming, August, 2006. 其他要说明的问题:重点在于应用相关模型分析PPTV的移动客户端服务器端的数据,并所面临的问题提出进一步的解决方案。达到学有所用,付诸实践。题 目: 基于测量的在线视频流媒体质量因素分析 学院:电子信息工程学院 专业:自动化(铁道信号) 学生姓名: 学号: 文献综述: 网络的宽带化使得人们对网络信息不再满足干简单的文本、图像而越来越希望宽

9、带网络能带来更直观更丰富的信息表现方式。流媒体技术的发展及应用使得这种需要成为可能。 流媒体是人类传播科技的又一次革新,虽然并非与印刷媒介、电子媒介和网络媒介同级的传播媒介,只是一种新的媒介技术和形式,但流媒体的出现给整个电子信息产业带来了全新的景观。流媒体的出现颠覆了以往传统的传播模式,开始由单向传播向双向互动发展。流媒体是指在Internet中使用流式传输技术的连续时基媒体,与传统的单纯下载方式相比较,流媒体具有明显的优点:由于不需要将全部数据下载后再播放,等待时间大大缩短;流文件往往小于原始文件,用户也不需要将全部流文件下载到硬盘,从而节省了大量的磁盘空间;由于采用了RSTP等实时传输协

10、议,更加适合动画、视频音频在网上的实时传输。 随着计算机网络和多媒体技术的不断发展,流媒体直播技术的应用越来越广泛。近几年,无线网络的飞速发展和带宽的迅速提高,为流媒体技术在无线网络中的应用奠定了坚实的基础。研究内容: 本文主要了解视频流媒体业务的基本特征,通过spark对在线视频进行流媒体质量因素的测量和分析。关联分析在不同技术条件和环境下流媒体的质量与因素,掌握不同元素如媒体内容、终端类型、地理位置、观看时间等对视频流媒体质量影响的关系和程度。研究方法: 机器学习,机器学习的研究是根据生理学、认知科学等对人类学习机理的了解,建立人类学习过程的计算模型或认识模型,发展各种学习理论和学习方法,

11、研究通用的学习算法并进行理论上的分析,建立面向任务的具有特定应用的学习系统。这些研究目标相互影响相互促进。 数据挖掘,数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。 数据分析,数据分析是指用适当的统计方法对收集来的大量第一手资料和第二手资料进行分析,以求最大化地开发数据资料的功能,发挥数据的作用。是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。重点研

12、究的问题:1. Spark平台的安装搭载与环境配置2. 待测量移动客户端服务器数据的预处理3. 视频基本特征的统计分析4. 运用机器学习和数据挖掘基本方法,分析研究视频质量与相关因素的关系主要参考文献:1 Athula Balachandran,Vyas Sekar,Aditya Akella,Srinivasan Seshan,Ion Stoica,Hui Zhang.A Quest for an Internet Video Quality-of-Experience Metric.HotNet 2012. 2 Florin Dobrian,Asad Awan,Dilip Joseph,A

13、ditya Ganjam,Jibin Zhan,Vyas Sekar,Ion Stoica,Hui Zhang.Understanding the Impact of Video Quality on User Engagement.SIGCOMM 2011 . 3 Ahahzad Ali,Anket Mathur,Hui Zhang.Measurement of Commercial Peer-to-Peer Live Video Streaming.Workshop in Recent Advances in Peer-to-Peer Streaming.August,2006. 4 Ph

14、illipa Gill,Martin Arlitt,Zongpeng Li,Anirban Mahanti.YouTube Traffic Characterization: A View From the Edge. In Proc. IMC, 2007.5 A. Bouch,A.Kuchinsky,and N.Bhatti.Quality is in the Eye of the Beholder:Meeting UsersRequirements for InternetQuality of Service.In Proc.CHI,2000.6 Xi Liu,Florin Dobrian

15、,Henry Milner et al.A Case for a Coordinated Internet Video Control PlaneJ.Computer Communication Review,2012,42(4):359-370.7 兰杰.基于用户体验的流媒体测试方案的设计与实现D.北京大学,2009.8 程伟.网络视频流质量监测系统设计与实现D.北京邮电大学,2012.9 周敬利,马志龙,范晔斌等.视频流媒体传输失真研究J.小型微型计算机系,2006,27(2):264-267.DOI:10.3969/ j.issn.1000-1220.2 006.02.018.10 ht

16、tp:/en.wikipedia.org/wiki/Cluster_analysis11 http:/en.wikipedia.org/wiki/K-means_clustering11 http:/cwiki.apache.org/confluence/display/SPARK/研究方案:5. 相关理论学习:对视频流媒体业务的发展现状和视频质量监测的研究现状进行了整理分析,包括在线视频应用的了解,对机器学习和数据挖掘基本理论与方法的学习。6. 测量数据的预处理:了解数据集特征,对数据集进行预处理,形成适合后续分析的基本数据集。7. 质量特征统计分析:处理确定流媒体数据,对各项数据进行统计特

17、征分析。8. 挖掘模型研究:掌握数据挖掘和机器学习基本方法,对视频质量与相关因素进行关联分析,确定不同元素对视频质量影响的重要度。毕业设计(论文)进度安排:序号毕业设计(论文)各阶段内容时间安排备注1仔细阅读任务书,查找相关文献并阅读12周2学习机器学习和数据挖掘基本理论与方法,深入课题的理论基础并写开题报告3-4周3了解数据集特征,对数据集进行预处理,形成适合后续分析的基本数据集。5周4安装搭载Spark平台,对平台进行环境变量的配置,运行相关例子,测试是否成功安装。6-7周5掌握数据挖掘和机器学习基本方法,应用聚类算法对视频质量与相关因素进行关联分析,即使用相关模型分析PPTV的移动客户端

18、服务器端的数据。8-10周6确定流媒体视频不同元素之间的影响与程度11周7撰写毕业论文1213周8准备答辩14周9毕设答辩1516周指导教师意见:填写说明:查阅资料是否全面,提出的研究方案和计划进度是否可行,还有什么需要注意和改进的方面,是否同意按学生提出的计划进行等。指导教师签名: 审核日期: 年 月 日题 目: 基于测量的在线视频流媒体质量因素分析 学院:电子信息工程学院 专业:自动化(铁道信号) 学生姓名: 学号: 毕业设计(论文)完成情况(包括设计图纸、说明书、实验报告、计算机软硬件、外文翻译及摘要、论文书写及规范化等)评价(50分):毕业设计(论文)成果质量评价意见(30分):学生工

19、作态度和考勤情况评价(10分):开题报告的评定成绩(10分):总成绩:_指导教师 (签名):_日期:_年 月 日题 目: 基于测量的在线视频流媒体质量因素分析 学院:电子信息工程学院 专业:自动化(铁道信号) 学生姓名: 学号: 毕业设计(论文)完成情况评价(包括设计图纸、说明书、实验报告、计算机软硬件、外文翻译及摘要、论文书写及规范化等)(50分):毕业设计(论文)成果质量评价意见(40分):开题报告评价意见(10分):评定成绩: 评阅人: 日期: 年 月 日题 目: 基于测量的在线视频流媒体质量因素分析 学院:电子信息工程学院 专业:自动化(铁道信号) 学生姓名: 学号: 毕业设计(论文)

20、完成情况和成果质量(工作量、任务难度、专业理论的运用、综合运用能力、资料的充足与可信情况、成果水平)评价意见(80分):答辩表现评价意见(20分):评定成绩: 答辩组长: 日期: 年 月 日中文摘要 Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,Spark兼容于Hadoop 数据源,但是比MapReducer快100倍左右,特别适合于机器学习处理。Spark还在萌芽阶段,尚未高速发展,随着Spark1.0.0 版本的发布,标志着apache的顶级开源项目Spark作为大数据的新贵,越来越多的受到IT业界的极大关注,将被广泛应用。 搭载实现Spark平台并应用Spark来研究处理

21、分析在线视频流媒体质量因素。论文介绍了课题的相关研究背景知识,并且对Spark的组成及原理进行了详细地介绍和研究。根据实验的需要,完成了平台的总体配置,对其性能进行了验证,研究其机器学习库。首先介绍在业界获得普遍认同的分布式文件系统的用户需求和架构模型然后针对RDD的体系架构进行介绍,最后通过KMeans机器学习算法分析了用户在流媒体视频观看时间与缓冲次数的关系,总结了流媒体相关因素的关系。实验采用的平台是Linux的Ubuntu12.04LTS版本,应用的是Apache Spark平台。系统所有的编写、调试与测试都在此实验平台下进行。关键词:Spark;机器学习;KMeans;数据挖掘;视频

22、流媒体AbstractApache Spark is a fast and general engine for large-scale data processing.Which run programs up to 100x faster than Hadoop MapReduce in memory,or 10x faster on disk.Spark is easy to use,writing applications quickly in Java, Scala or Python.More and more IT engineers pay attention to it,an

23、d it is being widely used in famous companies such as Alibaba Taobao,Amazon,Baidu,Netease,Sohu,Tencent,Yahoo!.Using machine learning for data mining analyzing the relationship between buffer and time of user viewing by Spark.Introducing the related background knowledge of Spark and principle of Spar

24、k.According to the needs of the experiment,building the platform of Spark.Secondly,introducing the architecture model of RDD.Then using the Kmeans algorithm for analyzing the relationship between buffer and time of user viewing through machine learning.In the end,summarizing the relationships betwee

25、n the related factors of streaming video. The experimental platform used is the Linux version of Ubuntu12.04 LTS and Apache Spark platform.All the writing,debugging and testing is in this platform.Key words:spark; machine learning; K-means; data mining; streaming video目录目录1第一章 前言311 课题研究背景和意义31.2 课题

26、研究内容和本文的主要工作方法51.3 论文组织结构5第二章 Spark开发平台概述62.1 Spark的背景62.1.1 Spark的介绍62.1.2 Spark的适用场景82.1.3 在业界的使用82.1.4 Spark与Hadoop对比82.2 RDD框架概述92.2.1 RDD介绍92.2.2 RDD的主要创建方式92.2.3 RDD的特点102.2.4 RDD的好处102.2.5 RDD的存储与分区102.2.6 容错性102.2.7可用性。102.2.8 RDD的内部表示112.3 Local模式和Mesos模式112.4 作用于RDD的各种操作112.5 Spark的编程模型12第

27、三章 Spark平台搭建133.1 安装Ubuntu Linux操作系统133.2 配置安装Java JDK133.2.1 下载jdk133.2.2 安装jdk143.2.3 配置环境变量143.2.4 检查是否安装成功143.3 搭建Hadoop环境153.3.1 下载安装Hadoop153.3.2 配置hadoop153.3.3 安装rsync和ssh163.3.4 配置ssh免登录163.3.5 启动hadoop173.4 安装Scala183.5 部署Spark203.5.1 下载spark-1.0.0源码203.5.2 解压编译203.5.3 设置SPARK_HOME环境变量203.

28、5.4 验证spark环境21第四章 机器学习算法模型224.1 聚类分析234.2 K-means algorithm234.2.1 算法描述244.2.2 算法的性能分析24第五章 实验处理与实验分析255.1 预处理待测量的数据集265.2 待测量数据集的条数265.3 运用KMeans算法275.3.1 下载NumPy275.3.2 Kmeans算法的python代码285.3.3 在Spark中运行295.4 聚类效果及分析305.4.1 Kmeans中k值的选取305.4.2 本次实验结果分析325.5 结论33第六章 结束语34参考文献34附录36第一章 前言11 课题研究背景和

29、意义流媒体(Video Streaming)是指在Internet中使用流式传输技术的连续时基媒体,视频流媒体(Media Streaming)业务是指支持多媒体数据流通过网络从服务器向客户机传送,接收方边接收边播放的技术。与传统的先下载后播放的做法相比,流媒体技术有很大的优势,如实时性强,有利于保护版权等。随着计算机网络和多媒体技术的不断发展,流媒体直播技术的应用越来越广泛,传统的Flash早已被视频流媒体所取代。近年来,无线网络的飞速发展和带宽的迅速提高,为流媒体技术在无线网络中的应用奠定了坚实的基础。在流媒体的背后进行着的是对大数据的挖掘,数据挖掘一般是指从大量的数据中通过算法搜索隐藏于

30、其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统和模式识别等诸多方法来实现上述目标。大数据,一个似乎已经被媒体传播的过于泛滥的词汇,的的确确又在逐渐影响和改变着我们的生活。也许有人认为大数据在中国仍然只是噱头,但在当前中国互联网领域,大数据以及大数据所催生出来的生产力正在潜移默化地推动业务发展,并为广大中国网民提供更加优秀的服务。提到大数据,自然不能不提Hadoop1。HDFS已然成为大数据公认的存储,而MapReduce作为其搭配的数据处理框架在大数据发展的早期表现出了重大的价值。可由于其设计上的约束MapReduce只适合处理离线计算,其

31、在实时性上仍有较大的不足,随着业务的发展,业界对实时性和准确性有更多的需求,很明显单纯依靠MapReduce框架已经不能满足业务的需求了。Hadoop中的数据传送与共享,串行方式、复制以及磁盘IO等因素使得Hadoop集群在低延迟、实时计算方面表现有待改进。优酷土豆作为国内最大的视频网站,和国内其他互联网巨头一样,率先看到大数据对公司业务的价值,早在2009年就开始使用Hadoop集群,随着这些年业务迅猛发展,优酷土豆又率先尝试了仍处于大数据前沿领域的Spark内存计算框架,很好地解决了机器学习和图计算多次迭代的瓶颈问题,使得公司大数据分析更加完善。在今天,数据处理要求非常快,作为Hadoop

32、的替代者,Spark性能比MapReduce提升很多,使其成为一大热门开源项目。Apache Spark是新推出的一个高效的分布式计算系统,是一个通用的并行计算框架,发源于美国加州大学伯克利分校AMPLab2的集群计算平台。Databricks,Cloudera都已决定支持Spark,Spark被认为是大数据领域的大事情,且很有可能成为大数据领域的下一个大家伙。Spark内存计算框架适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性。而MapReduce处理框架则擅长复杂的批处理操作、登陆过滤、ETL(数据抽取、转换、加载)、网页索引等应用,MapReduce在低延迟业务上一

33、直被人所诟病。 作为一个基于内存in-memory数据处理平台,兼容于Hadoop 数据源但是比Hadoop MapReduce运行得快得多。Spark迭代计算的主要实现思想就是RDD,把所有计算的数据保存在分布式的内存中。RDD 是分布在一组节点中的只读对象集合。这些集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。迭代计算通常情况下都是对同一个数据集做反复的迭代计算,数据在内存中将大大提升IO操作。这也是Spark涉及的核心:内存计算。Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算

34、密集度较大的场合,受益就相对较小。 虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟。RDD能够从磁盘读取然后保持在内存中,提高了性能,这和Hadoop大部分基于磁盘的速度要快多。Spark也可以直接对HDFS进行数据的读写。Spark可以与MapReduce运行于同集群中,共享存储资源与计算。本实验选择S

35、park是因为传统的并行计算模型无法有效的解决迭代计算(iterative)和交互式计算(interactive);而Spark的使命便是解决这两个问题,这也是它存在的价值和理由。因此特别适合于机器学习处理来分析大数据。 本文着眼于聚类的机器学习方法应用分布式系统处理挖掘大数据,通过spark对流媒体质量因素进行测量和分析,关联分析在不同技术条件和环境下流媒体的质量特征与因素,得出不同元素如媒体内容、终端类型、地理位置、观看时间等对视频流媒体质量影响的关系和程度。1.2 课题研究内容和本文的主要工作方法 本毕业设计主要任务是搭载实现Spark平台并应用Spark来研究处理分析在线视频流媒体质量

36、因素。包括:(1) 对Spark平台下的RDD(弹性分布式数据集),机器学习算法KMeans以及相关的机制进行了分析和研究,这为运用机器学习算法进行分析打好了基础。(2) 通过安装hadoop、jdk、scala、spark,并配置环境变量,搭建完成Spark平台。(3) 对数据集进行了预处理。(4) 采用机器学习算法对预处理的数据集进行计算。(5) 从理论上分析了实验结果。1.3 论文组织结构 第一章阐述了课题的背景及意义。介绍了分布式文件系统。提出了本文研究的主要内容。 第二章详细介绍了Spark开发平台,对RDD的相关特性,框架,机制进行了深入的讨论。 第三章描述了平台的搭载过程并通过运

37、行例子验证其有效性。 第四章描述了机器学习算法中的聚类模型KMeans。 第五章通过处理分析数据,得出不同数据因素之间的关系。 第六章为全文总结。列举了本论文的研究成果,并分析了研究工作的不足,展望了进一步研究的内容和方向。第二章 Spark开发平台概述2.1 Spark的背景2.1.1 Spark的介绍Spark是一种与Hadoop相似的开源集群计算环境,在性能和迭代计算上很有看点,现在是Apache的顶级孵化项目。Spark由加州大学伯克利分校AMP实验室(Algorithms,Machines,and People Lab)开发,可用来构建大型的、低延迟的数据分析应用程序。Spark启用

38、了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark是在 Scala语言中实现的,它将Scala用作其应用程序框架,而Scala的语言特点也铸就了大部分Spark的成功。项目的core部分的代码只有63个Scala文件,非常短小精悍。与 Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。尽管创建Spark是为了支持分布式数据集上的迭代作业,但是实际上它是对Hadoop的补充,可以在Hadoop文件系统中并行运行。通过名为 Mesos的第三方集群框架可以支持此行为。Spark可用来构建大型的、低延迟

39、的数据分析应用程序。Spark和Hadoop MapReduce类似,由Master(类似于MapReduce的Jobtracker)和Workers(Spark的Slave工作节点)组成。用户编写的Spark程序被称为Driver程序,Driver程序会连接master并定义了对各RDD的转换与操作,这些驱动程序可实现在单一节点上执行的操作或在一组节点上并行执行的操作。与 Hadoop 类似,Spark 支持单节点集群或多节点集群。对于多节点操作,Spark 依赖于 Mesos 集群管理器。Mesos 为分布式应用程序的资源共享和隔离提供了一个有效平台。该设置充许 Spark 与 Hadoo

40、p 共存于节点的一个共享池中。而对RDD的转换与操作通过Scala闭包(字面量函数)来表示,Scala使用Java对象来表示闭包且都是可序列化的,以此把对RDD的闭包操作发送到各Workers节点。 Workers存储着数据分块和享有集群内存,是运行在工作节点上的守护进程,当它收到对RDD的操作时,根据数据分片信息进行本地化数据操作,生成新的数据分片、返回结果或把RDD写入存储系统。 Spark是开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是J

41、ob中间输出和结果可以保存在内存中,从而不再需要读写HDFS。除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark的迭代,内存运算能力以及交互式计算,能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。其架构如图2.1.1所示。图2.1.12.1.2 Spark的适用场景 Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小。 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引

42、。就是对于那种增量修改的应用模型不适合。总的来说Spark的适用面比较广泛且比较通用。2.1.3 在业界的使用 Spark项目在2009年启动,2010年开源, 现在使用的有:Berkeley、Princeton、Klout、Foursquare、Conviva、Quantifind、Yahoo!、阿里巴巴、Cloudera、Databricks、IBM、英特尔、淘宝等3,豆瓣也在使用Spark的python克隆版Dpark。2.1.4 Spark与Hadoop对比 Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map,filter,flat

43、Map,sample,groupByKey, union, join, cogroup, reduceByKey, mapValues, sort, partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。 这些多种多样的数据集操作类型,给给开发上层应用的用户提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的Data Shuffle一种模式。用户可以命名,物化,控制中间结果的存储、分区等。可以说编程模型比Hadoop更灵活。图2.1.

44、42.2 RDD框架概述2.2.1 RDD介绍弹性分布数据集Resilient Distributed Dataset(RDD)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,也是设计精华所在。将它理解为一个大的集合,将所有数据都加载到内存中,方便进行多次重用。第一,它是分布式的,可以分布在多台机器上,进行计算。第二,它是弹性的,在计算处理过程中,机器的内存不够时,它会和硬盘进行数据交换,某种程度上会减低性能,但是可以确保计算得以继续进行。它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作。这对于迭代运算比较常见的机器学习算法, 交互式数据挖掘来说,效率提升比较大。2.2.2 RDD的主

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服