内存溢出诊断工具的设计与实现计算机软件专业

上传人:bin****86 文档编号:55162328 上传时间:2018-09-25 格式:DOCX 页数:68 大小:1.38MB
返回 下载 相关 举报
内存溢出诊断工具的设计与实现计算机软件专业_第1页
第1页 / 共68页
内存溢出诊断工具的设计与实现计算机软件专业_第2页
第2页 / 共68页
内存溢出诊断工具的设计与实现计算机软件专业_第3页
第3页 / 共68页
内存溢出诊断工具的设计与实现计算机软件专业_第4页
第4页 / 共68页
内存溢出诊断工具的设计与实现计算机软件专业_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《内存溢出诊断工具的设计与实现计算机软件专业》由会员分享,可在线阅读,更多相关《内存溢出诊断工具的设计与实现计算机软件专业(68页珍藏版)》请在金锄头文库上搜索。

1、密级密级: 硕士学位论文硕士学位论文Hadoop 内存溢出诊断工具的设计与实现内存溢出诊断工具的设计与实现 作者姓名:作者姓名: 刘畅刘畅 指导教师指导教师: 魏峻魏峻 研究员研究员 软件研究所软件研究所 学位类别学位类别: 工学硕士工学硕士 学科专业学科专业: 计算机软件与理论计算机软件与理论 培养单位培养单位: 软件研究所软件研究所 2013 年年 4 月月Design and Implementation of Hadoop Out of Memory Diagnosis Tool ByYang XinshengA Dissertation Submitted toUniversity

2、of Chinese Academy of SciencesIn partial fulfillment of the requirementFor the degree ofMaster of ScienceInstitute of Software University of Chinese Academy of SciencesApril, 2013III独创性声明独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中

3、作了明确的说明。签名:_ 日期:_关于论文使用授权的说明关于论文使用授权的说明本人完全了解中国科学院软件研究所有关保留、使用学位论文的规定,即:中国科学院软件研究所有权保留送交论文的复印件,允许论文被查阅和借阅;中国科学院软件研究所可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。(保密的论文在解密后应遵守此规定)V签名:_ 导师签名:_ 日期:_摘要VIHadoop 内存溢出诊断工具的设计与实现内存溢出诊断工具的设计与实现摘要摘要大数据处理框架的出现使得分析处理海量数据成为可能。通过使用大数据处理框架,人们只需要在框架上实现数据处理逻辑,而无需关心集群如何并行工作、错误

4、处理、数据切分等问题。目前 Hadoop 作为开源的大数据处理框架,在工业界和学术界得到了广泛的应用,但常常会遇到内存溢出错误而导致任务失败。当大数据处理框架发生内存溢出时,由于数据处理量大,并行程度高,且运行具有一定随机性等原因,往往难以诊断其原因。现有研究工作主要专注于如何减少 Hadoop 内存开销、优化性能,无法避免内存溢出错误的发生。而传统针对 Java 程序的内存溢出诊断工具由于只针对Java 层面的问题而难以适用于 Hadoop 框架及程序。目前还没有专门针对Hadoop 内存溢出错误的诊断工具。针对上述问题和需求,本论文设计并实现了 Hadoop 内存溢出的自动化诊断工具。论文

5、首先分析造成内存溢出的常见原因,结合 Hadoop 框架结构和运行机理,总结常见的内存溢出规律和自动化诊断需要解决的问题。进一步,针对内存溢出错误进行建模,通过采集 Hadoop 运行时数据,并结合内存溢出模型诊断错误原因。当 Hadoop 发生内存溢出错误时,工具能够自动定位错误所在运行阶段,并结合内存对象分配情况和系统配置参数,诊断导致内存溢出的原因。实验结果验证了论文工作的有效性。关键词关键词 Hadoop,内存溢出,诊断VII摘要VIIIDesign and Implementation of Hadoop Out of Memory Diagnosis ToolAbstractWit

6、h the help of Big Data Framework, the large-scale data analyzing become possible. Using the Big Data Framework,users can focus on the data processing logic, rather than the parallelization, the fault tolerance or the data segmentation. Currently, as an open source framework for large data, Hadoop is

7、 widely used in industrial and academia area. However during the process of Hadoop dealing with the large-scale data, the out of memory error occurs frequently. Due to the large-scale of data, highly parallelism and some random factors, it is hardly to figure out the root cause of memory leak manual

8、ly.At present, some approaches could reduce the memory overhead or optimize the performance of Hadoop application, but these methods still cannot prevent the t out of memory error. Moreover, other approaches could diagnosis the Java memory leak, but they are useless for the memory leak which caused

9、by the user level and the framework level problem. Therefore, there is no tool to diagnose the Hadoop out of memory presently.In this paper, we designed and implemented a tool to diagnose the Hadoop out of memory issue, focusing on the memory issue of Hadoop framework. We summarized the common issue

10、 of memory leak, and analyzed the mechanism of Hadoop. And we concluded the rule of out of memory and we also found the challenge of the automatic diagnosis. Moreover we designed and implemented a tool which could get the root cause of error during the Hadoop out of memory. This tool could diagnose

11、the phase of the out of memory occurs, the object which consumes most of the memory space, and the related configuration, so that the user could find the reason for out of memory. Then we evaluated the effectiveness and precision of the tool by experiment.Keywords: Hadoop, Out of memory, DiagnosisIX

12、目录1目录目录第一章绪论.11.1研究背景.11.1.1大数据处理框架.11.1.2内存溢出错误.21.1.3系统设计目标.21.2相关工作.31.3论文工作.31.4论文组织.4第二章Hadoop 框架的内存管理52.1Hadoop 系统52.1.1Hadoop 系统框架 .52.1.2Hadoop 系统层次 .92.1.3Hadoop 运行流程及内存使用102.2Java 程序的垃圾回收机制 .132.3内存溢出诊断的相关研究工作及工具152.4Hadoop 内存溢出原因分析162.4.1影响因素 1Hadoop 框架对象内存.172.4.2影响因素 2用户对象内存172.4.3影响因素

13、3内存限制172.5人工诊断 Hadoop 内存溢出错误.182.6Hadoop 内存溢出自动化诊断的难点202.7本章小结.21第三章Hadoop 内存溢出诊断方法及关键技术233.1Hadoop 内存溢出诊断模型233.1.1内存溢出诊断的前提条件.233.1.2模型构造.253.2关键技术.293.2.1内存溢出判断.293.2.2内存限制分析.293.2.3数据流分析.303.2.4Hadoop 框架内存分析 .313.2.5用户代码内存分析.333.2.6内存对象分析.353.3本章小结.36目录2第四章Hadoop 内存溢出诊断工具的实现374.1工具架构及运行流程 .374.1.

14、1诊断流程.374.1.2诊断工具系统架构.384.2数据收集模块 .394.3内存限制分析模块 .404.4出错阶段定位模块 .414.5内存预估模块 .424.6内存对象分析模块 .434.7本章小结.43第五章实验与分析.455.1实验平台.455.2内存溢出诊断案例 .465.3实验结果.465.4本章小节.47第六章结束语.496.1工作总结.496.2进一步工作.50参考文献.51作者简历.53学术论文与研究成果.55致谢.57第一章 绪论1第一章第一章绪论绪论1.1研究背景研究背景1.1.1大数据处理框架大数据处理框架工业界和学术研究所产生的数据量日益庞大,而传统的数据处理及分析

15、方法难以满足处理海量数据的需要。例如 Facebook 每天需要处理 500TB 的数据1,Google 每天要处理 20,000TB 的数据2,Twitter 每天有 1.75 亿条新增微博3。为了能够分析处理这些海量数据,大数据处理框架应运而生。大数据处理框架通过将数据处理并行化,大数据的运算能够在多台机器同时进行。另外,大数据处理框架通过抽象,使得用户只需要实现相应处理逻辑的编程接口,而不再需要关心并行、容错等底层逻辑,这使得上层的大数据分析应用成为可能。目前大数据的处理框架核心主要包括:1.文件系统,主要以google 的 GFS 为代表4,开源的分布式文件系统 HDFS5也是参考 GFS 原理实现。2.计算框架,目前主流的计算框架为 MapReduce,如 Hadoop6、Spark7、Dryad8等都是基于 MapReduce 计算框架实现。因此将 Hadoop 作为研究对象具有很好的代表性。Google 在 OSDI 会议上首次提出了基于 MapReduce 的分布式计算框架,在大数据的处理上取得了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号