华中科技大学本科生毕业设计(论文)开题报告
本科生毕业设计(论文)开题报告
题 目:基于流处理的混合调度策略研究
院 系 电子信息与通信学院
专业班级 电信1202班 姓 名 肖洋 学 号 U201213408 指导教师 张惕远
2016 年 3月
华中科技大学本科生毕业设计(论文)开题报告
开题报告填写要求
一、 开题报告主要内容:
1.课题来源、目的、意义。 2.国内外研究现况及发展趋势。
3.预计达到的目标、关键理论和技术、主要研究内容、完成课题的方案及主要措施。 4.课题研究进度安排。 5.主要参考文献。
二、 报告内容用小四号宋体字编辑,采用A4号纸双面打印,封面与
封底采用浅蓝色封面纸(卡纸)打印。要求内容明确,语句通顺。
三、 指导教师评语、教研室(系、所)或开题报告答辩小组审核意
见用蓝、黑钢笔手写或小四号宋体字编辑,签名必须手写。 四、 理、工、医类要求字数在3000字左右,文、管类要求字数在
2000 字左右。
五、 开题报告应在第八学期第二周之前完成。
华中科技大学本科生毕业设计(论文)开题报告
一、 课题来源、目的、意义
流处理是分布式计算领域一种重要的计算方式,它能够在保证低时延的条件下处理大量的实时数据,典型的流处理系统如Storm,S4,Samza,Spark Streaming等。以storm为例,流应用可以用有向图来描述,其中节点表示源头spout或计算单元bolt,边代表数据流向。这样的有向图在storm里被称为拓扑结构(topology),图1.1是storm里面一个统计词频的拓扑结构。其中TweetSpout从外界获取数据源并将数据流交给下游的ParseTweetBolt处理,ParseTweetBolt处理完之后再交由下游的WordCountBolt处理。可以看到,流处理的方式是分级处理,上游的处理单元在处理完数据之后交给下游。
图1.1:统计词频的拓扑结构
需要说明的是,spout和bolt只是逻辑结构,每一个spout和bolt一般是由storm集群中跨机器的、并行的task集合一起执行的,而这些task又是运行在worker(进程)里面的。而在storm系统里,数据从上游的spout(或bolt)传送到下游的bolt时也需要对数据重新分组,分组方式决定了指定的某条消息(storm里面称为tuple)会分发到下游的哪一个task上,如图1.2所示。
1
华中科技大学本科生毕业设计(论文)开题报告
图1.2:storm里面的流分组
现在流处理领域主要的流分组方式有key grouping和shuffle grouping。其中shuffle grouping只适合处理无状态的应用,对于有状态的应用,它的内存开销为O(W),其中W为worker的数目,即每增加一个 worker就会增加一定的内存开销,这样的分组方式会严重影响系统的并行度和可扩展性,因为当worker增加到一定数目时机器的内存资源就不能支持了,因此shuffle grouping并不适用于有状态的流应用。而另一种方式为key grouping,它用一个指定的哈希函数对消息的关键字key进行处理,这样会得到一个自然数N,然后再将这条消息发送给编号为N的worker。这样一来,带有相同的关键字的消息就一定会被映射到同一个worker上面(这里由于task也是在worker里面的,为了方便,我们只考虑worker)。由于数据流的关键字分布存在倾斜,即有的关键字很热门,出现的次数比其他一些冷门单词多得多,所以这样的分组方式会导致处理与热门关键字相关联的消息的worker相比其他的worker有着更多的负载(这里负载定义为一段时间内worker处理的消息数所占总消息数的比例),因此会出现负载不平衡的现象,如图1.3所示。图中Source代表源头,即获取数据的instance(可以理解为storm里面执行Spout的那些Worker),Worker表示处理数据的instance(可以理解为storm里面执行Bolt的那些Worker)。不同的颜色表示关不同的键字,可以看到(从上至下)第一个Worker处理的消息明显比其他的多.
2
相关推荐: