hadoop 作业执行时间静态预估系统的设计与实现毕业论文
2021-04-29 21:49:01
摘 要
一个设计良好的软件,不仅要保证其正确性,还应该拥有较好的时间性能。对于实时系统来说,软件的时间性能是一个非常重要的关键因素,若作业无法在某一限定时间内完成,则将导致系统运行的失败。在云计算这样的并行处理环境之下,若能够通过事先分析对作业执行的时间做出合理且准确的判断及预估,将能够有效地为作业的各个任务进行有效的资源分配,提高作业调度的效率。因此,对软件运行时间进行正确预估是十分必要的一件事情。
在本系统中,主要针对hadoop作业的WCET进行预测。WCET(Worse Case Execution Time)是衡量软件时间性能的一个重要参数,即系统的最大执行时间。对WCET进行分析的作用在于,它使我们能够在程序被应用之前,就得到关于程序最坏执行时间的相关信息。本系统通过调用其他工具对hadoop的jar包反编译得到源码,对其进行静态分析,逐句分解计算得到其执行时间。并通过分布式算法调整结果使其误差最小化,能够准确地提供作业的最大执行时间。
关键字:hadoop 执行时间 静态预估
Abstact
A well-designed software, not only its accuracy should be ensure, but also should should be good at time performance. For real-time systems, the time performance of the software is a very critical factor. If the job can not be completed within a limited time, it will lead to the failure of system operation.In the environment of cloud computing,which is a environment of parallel processing,if we can make a reasonable and accurate prediction on job execution time through analysis in advance, it will be useful for us to effectively allocate resources to tasks and improve the efficiency of job scheduling. Therefore,estimate the software running time correctly is very necessary .
In this system is mainly for forecasting hadoop jobs’WCET . WCET (Worse Case Execution Time) is an important parameter to measure the performance of the software execution time, namely the maximum execution time of the system. Meaning of WCET’s analysis is that, it provides us the information about the program worst-case execution time before the application of the program. The system decompile the jar package of hadoop to get source code by calling the other tools,and make a static analysis on it,calculate the execution time by decomposition every sentences. The system adjust the results to make the error minimized through a distributed algorithm ,which can provide maximum execution time for the job accurately.
Keyword:hadoop;execution time;static estimated
目 录
摘要 I
Abstact II
第1章 绪论 1
1.1 课题研究目的及背景 1
1.2 研究现状 1
1.3 论文组织结构 2
第2章 Hadoop作业执行时间预估系统分析与设计 3
2.1 系统需求分析 3
2.2 系统功能设计 4
2.3 命名规范化及函数功能设计 7
第3章 Hadoop作业执行时间预估系统的实现 9
3.1 反编译 9
3.1.1 原理 9
3.1.2 字节码文件 10
3.1.3 中间文件形式 11
3.1.4 调用反编译工具 14
3.2 获取数据文件大小 15
3.2.1 获取文件路径 15
3.2.2 读取文件大小 16
3.3 执行时间计算 16
3.3.1 语句执行时间对比库 17
3.3.2 顺序执行语句的执行时间 19
3.3.3 for循环语句执行时间 20
3.3.4 while循环执行时间 22
3.3.5 switch条件式执行时间 22
3.3.6 if-else条件式执行时间 23
3.3.7 磁盘读取与网络通信标记 25
3.4 调整时间 27
第4章 测试验证 29
4.1 测试环境介绍 29
4.2 测试环境搭建 29
4.3 测试内容 30
4.3.1 功能测试 30
4.3.2 系统测试 31
第5章 结论 33
致谢 34
参考文献 35
第1章 绪论
1.1 课题研究目的及背景
随着科技的发展,常常需要存取和处理大量的数据,云计算在这样一个环境下也就应运而生了。云计算的产生对互联网而言可以说是一个不小的冲击,它不仅改变了网络的服务模式,还使得计算能力可以进行商品化,对于IT技术的发展有着较强的实际意义和商用价值。在现有关于云计算的研究中,调度问题可以说是一个非常热门的课题,它也是云计算关键技术之一[1]。云计算作业调度从用户角度及云服务提供商方面进行考虑,权衡资源分配和作业执行时间等多方面的因素,通过调度算法增加计算效率。
Mapreduce并行计算编程模型的思想最早是来源于Google早期的几篇论文,它在2004年被提出,主要用在对于大规模数据集的并行计算中。它的主要内容是:map、reduce。Map的作用是对数据进行处理,输出形如KEY-VALUE的中间结果。Map的输出作为Reduce的输入内容,reduce的作用是对键值对进行处理,并输出最终处理结果。简单来说,也就是对杂乱数据的映射和规约。
Hadoop是mapreduce模型的一个非常经典的实例,它的核心设计是HDFS和MapReduce,分别为用户提供存储和计算。