【毕业学位论文】(Word原稿)分布式JavaScript解析系统的设计与构建-通信与信息系统_第1页
【毕业学位论文】(Word原稿)分布式JavaScript解析系统的设计与构建-通信与信息系统_第2页
【毕业学位论文】(Word原稿)分布式JavaScript解析系统的设计与构建-通信与信息系统_第3页
【毕业学位论文】(Word原稿)分布式JavaScript解析系统的设计与构建-通信与信息系统_第4页
【毕业学位论文】(Word原稿)分布式JavaScript解析系统的设计与构建-通信与信息系统_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士学位论文 分布式 析系统的设计与构建 S 者: 导师: 北京交通大学 2016 年 7 月 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特授权北京交通大学可以将学位论文的全部或部分内容编 入有关数据库进行检索,提供阅览服务 ,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。 (保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 导师签名: 签字日期: 年 月 日 签字日期: 年 月 日 i 中图分类号: 校代码: 10004 密级: 公开 北京交通大学 硕 士 学 位 论 文 分布式 S 者姓名: 学 号: 导师姓名: 职 称: 副教授 学位类别: 工学 学位级别: 硕士 学科专业: 通信与信息系统 研究方向: 计算机网络 北京交通大学 2016 年 7 月 谢 论文的撰写工作即将完成,我的研究生学习生活也将结束,在这两年半的时间里,有过迷茫,也有过失落,但是更多的是坚持和收获。这期间我的老师、同学和家人给予了我莫大的支持和帮助,对我这段时间的成长产生了积极作用,在此向你们表示由衷的感谢。 首先,我要感谢我的导师沈波副教授,本文是在沈老师的悉心指导下完成的。沈老师的言谈举止、对生活和科研的态度,使我受益匪浅,对我的学习和生活产生了积极的影响。在论文的前期研究阶段,沈老师对我的工 作要求极大提高了论文研究的效率。在论文撰写阶段,沈老师提出了很多宝贵的意见,并帮助我解决了研究过程中的很多问题。在此衷心的感谢沈老师在这两年多的时间里对我的关心和指导。 同时,感谢刘云教授和张振江副教授,为我在研究生学习期间提供良好的学习、科研环境,让我参加到实验室的项目课题中,使我在实践项目中快速的提高了自身的科研水平。刘老师和张老师的严格要求,让我养成了谨慎的工作态度,对我在今后的工作生活产生了积极的影响。在此向刘老师和张老师表示真诚的感谢。 感谢我的家人,家人为我的学习和生活不辞辛劳,我在此向你们表达 诚挚的谢意,谨以此文献给我的家人和所有关心我的亲人。北 京 交 通 大 学 硕 士 学 位 论 文 中文摘要 文摘要 摘要: 随着互联网技术的飞速发展,网页的页面视图效果越来越美观,使用的页面编程技术也不仅仅局限于 静态语言。以 代表的动态脚本由于其功能强大,使界面观赏程度高等优势越来越受到开发者和用户的青睐。但是由于其编写复杂程度比传统的静态网页技术高,所以在搜索引擎、舆论分析等领域进行网页内容抓取和分析的时候,很难对 以本论文在设计并构建能够高效解析网页中 分 布式系统时,能够完成对存在于 档中的 段进行高效的提取和分布式解析的功能,并且在分布式计算机集群中合理的进行任务调度。 该论文主要包括两个研究方向:首先是对网页中存在的 行有效的提取和解析;然后结合 布式计算技术,在深入分析现有任务调度算法、结合本系统实际情况的基础之上,设计本系统在分布式计算环境中的任务调度算法,合理的进行 析任务调度,实现对页面中包含的 段的高效解析。通过对 法规则和其 在网页中的存在形式的研究,设计了提取流程和算法,然后借鉴浏览器解析 方法,使用析引擎,构造 析环境来实现第一模块。通过对现有务调度算法的研究、分析和对比,并结合 析任务的具体特点和分布式集群的环境,探究最适合本系统的 务调度算法。对析任务进行合理调度,然后搭建计算机集群,对设计的分布式析系统进行构建。最后对分布式 析 系统进行测试,对其应用性能和解析准确性进行验证,并且总结系统的不足,提出后续改进意见。 本文实现的分布式系统能够对网页中存在的大量 行高效、快速的解析。实验结果表明,本系统能够对网页中 段内包含的文本文字和超链接内容进行高效、准确的提取和解析。从而,本文的研究和实现工作能够为搜索引擎、舆论分析、数据采集等领域提供更高效可靠的技术支持。 关键词: 析; 务调度; 析引擎 分类号: 交 通 大 学 硕 士 学 位 论 文 A B S T R A C T of of as of is is In of its to in of is to a to an S to a of by of is on to to a S In to of a on at S a S S of a of 京 交 通 大 学 硕 士 学 位 论 文 目录 v 目录 中文摘要 . . 绪论 . 1 究背景 . 1 究现状 . 2 作内容 . 3 文组织结构 . 4 2 析与分布式计算 . 6 析 . 6 本语言 . 6 析引擎 . 7 布式计算 . 11 布式计算 . 11 架 . 12 究 . 13 件存取 . 15 章小结 . 19 3 析与任务调度算法研究 . 20 统整体结构 . 20 取和运行环境 . 21 取和解析流程 . 21 取算法 . 22 析对象 . 24 析任务调度 . 25 有调度算法 . 26 量调度算法 . 27 平调度算法 . 28 适应调度算法 . 30 度算法总结 . 31 章小结 . 33 4 分布式 析系统的构建 . 34 北 京 交 通 大 学 硕 士 学 位 论 文 目录 统工作流程 . 34 页爬取 . 35 取 . 36 析任务调度 . 37 态采集 . 37 务调度 . 38 析任务调度 . 39 析环境管理 . 39 现 . 40 章小结 . 42 5 分布式 析系统的测试与分析 . 43 试环境 . 43 件环境搭建 . 44 统测试与分析 . 44 统测试 . 44 果分析 . 46 试结果总结 . 48 章小结 . 49 6 总结与展望 . 50 文总结 . 50 望 . 51 参考文献 . 53 作者简历 . 55 独创性声明 . 56 学位论文数据集 . 57 北 京 交 通 大 学 硕 士 学 位 论 文 绪论 1 1 绪论 究背景 随着互联网的发展,网络已经进入了千家万户,根据第 32 次中国互联网络发展状况统计报告 1统计,到 2013 年 6 月为 止,中国的互联网使用者数量已经接近六亿人,表明我国人口的 使用过互联网,与前一年相比,提升了两个百分点。中国政府在信息化推进领域的一系列政策方针和基础网络设施建设成效逐步释放,宽带普及和移动网络建设等行动直接带动人们对互联网的使用。另外,截至 2013 年 6 月底,我国互联网用户使用者中农村人口数量已经达到了全部互联网用户的四分之一以上,规模达到 ,相比 2012 年略有提升,增加约了九百万人。最近半年,农村互联网使用者的规模增长速度将近六个百分比,略高于城镇。 随着互联网用户数量的增加,互联网的信 息含量在不断的扩增,并且随着各种新媒体形式的出现,数据的存在形式也具有很大差异。随着物质生活的提高,人们对精神文化的需求也越来越高,互联网公司也越来越重视网民的用户体验程度。目前的网络页面在网站布局,页面动态效果等方面给人越来越强的视觉体验。然而,传统的 档中都是以标签的形式嵌入网页内容,设计网页的页面布局和导航。以这种编写方式编写出来的网页虽然在内容上传播了所要表达的信息,但是在视觉效果和用户操作体验方面,已经越来越不受网民的欢迎了。随着编程语言的发展,网页动态语言日趋成熟,并且完成了传统 签所不能达到的视觉和操作效果。具有代表性的有 。这些动态脚本语言 2不仅为用户带来了新的互联网体验,而且也为网页开发人员提供了方便,很多复杂功能可能只需要几个函数调用就可以实现。 信息时代已经来临,如今人们在互联网中已经不只是阅读、查找资料或者是收发 们可以通过互联网进行购物、娱乐和工作。而网民在互联网中进行各种行为和操作的时候都会产生数据。这些数据是很宝贵的,他不仅反映了网民的关注方向,也反映了网民在生活中的价值观、世界观。因此,网络舆情分 析、信息采集,网络安全等负责对互联网信息进行统计,维护互联网安全,保障网民上网权力和安全的互联网行业出现了。 随着各种网络技术的出现和不断提高,也给信息采集、搜索引擎、网络舆论分析等领域带来了很多的技术难题。传统的网页分析和信息采集技术能够提取和北 京 交 通 大 学 硕 士 学 位 论 文 绪论 2 分析互联网中以 签形式出现的信息。但是随着动态脚本语言技术的推广和流行,动态脚本语言的形式和编写标准越来越多,使得传统的网页分析和信息采集技术无法获得隐藏在动态脚本语言中的信息。 鉴于以上情况,本文希望能够通过对当今最流行的 态脚本语言的研究,探究如何高效、准确的解析页面中的隐藏在 段中的信息,并且结合分布式计算技术,以提高 段解析速度、进行多线程解析为目的,将 析技术的实际应用效果提高到最大化。为搜索引擎、网络舆论分析、信息采集等领域提供切实可行的技术支持。 究现状 针对传统页面分析技术无法对 档中存在的 段进行有效提取和解析的情况,作者对现有的 段解析方法进行了考察和总结。目前, 段的解析手段主要有两种 3:我们知道在浏览网页时,浏览器负责了 档的解析工作,无论是传统的静态标签还是现在流行的动态语言脚本,浏览器都能够准确的对其进行解析,所以,使用浏览器对 段进行解析是一种手段;另一种手段是利用现有的 析引擎对页面中的段进行解析,采用这种方法需要用户自己来创建 析环境。采用第二种方法对 段进行解析,针对性更强,而且解析效率比直接使用浏览器解析更快,而且在资源利用率和资源分配问题上第二种方法的利用率更高, 并且占用空间更小。 使用浏览器对 段进行解析的方法主要是通过 件,将原有的档进行解析,利用包含在组件内部的 析引擎对嵌入在 段进行解析。然后把解析结果还原到 档中。其过程如图 1示。 虽然这种方法实现了对 档中 段的解析,但是能够看出,使用 件不仅实现了 段的解析,同时也对 档的其他部分实现了解析(包括文字信息、超链接、页面布局等信息),这 样做的解析效率显然是很低的。 另外一种 析手段 使用 析引擎,这种方法的针对性非常强,排除了不必要的工作和开销,只针对 档中的 段进行解析。但是采用这种方法的难点在于,要自行创建 解析环境。另外,现有的 析引擎中只包含了 言中包含的对象,不包含档中的 象,因此,无法对 段中的 象进行解北 京 交 通 大 学 硕 士 学 位 论 文 绪论 3 析,这就需要设计者对 段中的 象进行解析,从而实现对段的准确解析。 图 1览器解析 外,目前还没有将分布式算法与 析相结合的研究方向,也就是说,并没有将 段的提取和解析与大数据处理、云计算技术结合起来应用。这样, 段的采集和解析就不会真正的应用到搜索引擎、信息采集、网络舆情分析等领域中。因此本文分布式 析系统的设计与构建为日后以上领域的扩展和技术发 展提供了非常有意义的思路和研究方向。 作内容 在进行分布式 析系统的设计与构建过程中,为了能够实现系统对页面中包含的 段进行高效的提取和解析,进而得到准确的解析结果,主要对以下几个技术方向进行细致的研究和探索: (1) 言研究。首先对 言的特点、语法规则和在 档中的出现形式进行研究,总结规律,为后面进行 取做准备。 (2) 析引擎。研究现有的一些 析引擎,总结其解析过程中的优缺点,并分析 其解析性能、构建解析环境过程和基于何种语言,为系统设计提供支撑。 含 有J a v a S c r i p t 片 段的 页 面J r e 有J a v a S c r i p t 片 段的 页 面U R L 提 取 U R L 链 接内 容 存 储 U R L 队 列北 京 交 通 大 学 硕 士 学 位 论 文 绪论 4 (3) 取算法。根据对 言的研究和总结出的 言在 档中的出现形式,设计如何从 档中进行 段的提取。 (4) 析流程设计。采用前面选择的 析引擎进行 解析过程中主要问题是解决如何自动的对 析环境进行构建和管理。系统能够根据任务情况自动的进行 析环境的构建 ,在没有 析任务队列时,能够自动回收 析环境。当解析环境中创建的对象和方法不再需要时,及时对这些变量进行垃圾回收。 (5) 务调度算法。为了提高 段的解析效率,引入了程模型,并且,结合本系统的实际需求与异构计算机集群的实际情况,对现有的几种 度算法进行分析和对比。总结各个算法的优势和劣势。选择适合本系统的任务调度算法,并结合系统实际需求进行改进。 文组织结构 本文由六章组成,以研究顺序为文章 总体线路进行叙述,具体为: (1) 第一章:绪论。这一章节是对论文的背景概括,对研究现状进行了解和分析,在了解与本论文相关的现有技术手段的基础上,安排本论文的具体研究方向和工作内容。并且规划论文的整体结构。这一部分是文章的背景描述。 (2) 第二章: 了能够从 本章首先对 言的语法规则和在面中的展现形式进行了分析和研究,并且对几种流行的 析引擎进行了对比,为后续的 取和解析算法提供理论支持。另一方面,对 布式计算框架中两大主要技术 型和行了研究,目的是为实现本系统的分布式结构提供技术支撑。 (3) 第三章: 析与任务调度算法研究。在这一章节中,创新性的提出了在 取和解析的算法和具体流程,并且对几种务调度算法进行研究和对比。这一部分是系统的理论设计。 (4) 第四章:分布式 析系统的构建。结合第三章的理论创新对分布式 析系统进行实现,并且在结合原有 务调度算法的基础上进行改进,目的是使系统能够更加高效的对 析队列进行调度和解析。 (5) 第五章:分布式 析系统的测试与分析。对实现的分布式 析系统进行测试,设计分布式计算机集群结构,根据各项测试结果,对系统的性能, 交 通 大 学 硕 士 学 位 论 文 绪论 5 提取准确程度,任务调度合理性进行分析。总结系统的优点和不足。 (6) 第六章:总结与展望。系统的设计与构建已经实现,并且在进行系统测试之后,系统的整体性能也有了评定,本章对本文的研究成果和系统实现进行总结,与研究背景、现状和未来发展方向相结合,提出系统可改进之处,对未来的 研究方向和研究目的进行展望。 北 京 交 通 大 学 硕 士 学 位 论 文 析 与 分 布 式 计 算 6 2 对网页中 含的有效信息进行高效的提取和解析,在搜索引擎、数据采集、舆论分析等领域都有着非常重要的意义。要达到预期的研究目的需要使用的技术手段和创新研究也是非常复杂的。本章从 析, 要技术两个方面分析本文的主要技术支撑。为后续研究和创新奠定基础。 随着互联网技术的发展,大量的互联网用户体会到了 言给网页带来的强大功能,和对用户的视觉体验所产生的冲击。但是,有 利也有弊, 制造了麻烦或者说是埋下了隐患。当我们进行网页信息提取和分析的时候, 言的信息会隐藏起来,传统的静态页面解析技术是无法对其进行提取和分析的。本节首先对 言进行研究,然后分析现有的 析引擎,为后续的 析流程和算法的研究和设计奠定技术基础。 言 4通过在客户浏览器运行将结果展示给 面的访问用户。其前身是 司推出,编写在 档中的脚本语言,改进后更名为 通过对 言的学习和研究, 言包括了以下几点核心优势,具体为: (1) 基于对象: 灵活性主要就是由于它是基于对象的,能够通过 (2) 事件驱动:当鼠标、按键等事件发生时,驱动 段及时反映结果。 (3) 实时性:在客户端就可以实现 件的处理,页面对处理结果实时作出响应。 (4) 动态性: 言本身包含很多方法和属性,能够灵活的响应各种文档页面事件,使页面之间进行动态的交互。 (5) 跨平台: 段的的运行结果与计算机的操作系统无关,只要该计算机中有能够解析运行 段的浏览器,该计算机就能将 北 京 交 通 大 学 硕 士 学 位 论 文 析 与 分 布 式 计 算 7 段的准确运行结果呈现给用户。 (6) 安全性:客户端的计算机并不能被 段访问,更不能修改 档中的内容,只能被浏览器运行和解析,有效的防止了计算机中的数据泄漏和非法篡改。 由此可见 生命力和潜力是很强的, 在提升功能性的同时也减轻了服务器的压力。现在使用的 术,也是基于 言的。也正是由于 备以上特性,在网页分析和处理工作中,传统的 析、析,是无法从网页文档中有效提取并解析 包含的信息的。所以,在第三章中作者会结合 言的特点,设计合理有效的 析流程和算法。 本文对 用了先提取后解析的方法,提取后,需要自动构建析环境,因此,解析引擎是构建解析环境的主要技术支撑。现在很多浏览器都使用自己的解析引擎来解析 且这些解析引擎的工作原理和使用的语言都有区别,工作效率也不相同。作者对几种主流开源解析引擎进行了研究如下: (1) 是 司的开源项目之一,是使用 C 语言构造的析器。在构建 析环境时要对 三个要素进行构建,即 析环境( 析上下文( 全局对象。 图 2构建 析环境的示意图, 解析时所需的变量、方法和解析上下文分配空间,这是 析引擎的大环境,不同的解析上下文和各个 象都运行在同一个解析大环境中。与 同,一个数要对应一个 析上下文环境负责 析上下文环境代表一个 本,一 个上下文环境中不能同时运行两个或两个以上的解析线程。当一个 段被解析完成后,解析上下文环境可以交给另一个 析任务,如果没有待解析的务,就要释放解析上下文环境。而全局对象中,包含了所有 析后,要对 析环境、用到的对象、方法和变量进行回收。 北 京 交 通 大 学 硕 士 学 位 论 文 析 与 分 布 式 计 算 8 图 2析环境 用 C 语言与 言建立沟通,使用 C 语言中的变量、方法,创建 象,实现与 言的接口,也就是说,在执行函数和方法时,调用的是与其同名的 C 语言编写的方法。 析 段的方式有两种,一种是先将 段编译成中间码,在编译过程中会执行对 段的检查,然后通过执行中间码来获得解析结果。另一种是直接解析,不需要编译直接运行 段,如果报错,系统会从第一个错误的位置返回结果,并且中断运行。第二种虽然没有检查 法错误,但是其执行效率要比第一种快。 含了运行环境、上下文管理、对象、数据的处理和垃圾回收机制。其功能和处理效率已经非常优秀,其编译器比之前的 译器性能提高了 20 到 40 倍。 (2) 8 司发布的 览器得到了大批用户的追捧,其成就不仅仅因为其界面简洁的特点,更重要的是 览器打开网页的速度。而 作为 析引擎是 览器的一大技术亮点。可以说 目前市面上运行速度最快的 析引擎之一。他的 析和执行效率远远超过了 擎是使用 C+语言编写的开源程序,采用了先编译后执行的解析过程,但是不同的是, 擎并没有将 段编译为字节码,而是将其转换为机器码。同时, 擎采用了与传统 要引擎认为此方法或者数据不会再次被调用,脚 本 ( J a v a S c r i p t )脚 本 ( J a v a S c r i p t )脚 本 ( J a v a S c r i p t )脚 本 ( J a v a S c r i p t )脚 本 ( J a v a S c r i p t )脚 本 ( J a v a S c r i p t )脚 本 上 下 文( J S C o n t e x t )脚 本 上 下 文( J S C o n t e x t )脚 本 上 下 文( J S C o n t e x t )脚 本 上 下 文( J S C o n t e x t )脚 本 上 下 文( J S C o n t e x t )脚 本 上 下 文( J S C o n t e x t )脚 本 对 象( O b j e c t )脚 本 对 象( O b j e c t )脚 本 对 象( O b j e c t )脚 本 对 象( O b j e c t )脚 本 对 象( O b j e c t )脚 本 对 象( O b j e c t )脚 本 对 象( O b j e c t )脚 本 对 象( O b j e c t )北 京 交 通 大 学 硕 士 学 位 论 文 析 与 分 布 式 计 算 9 就会将此方法或数据清 除。这样很大程度上提高了 擎的解析和执行速度。擎的主要特点如下: 快速属性访问:传统的 析引擎在执行脚本时,会将用到的属性存放到内存中并且建立索引,等用到的时候去查询。而 擎认为这种方法的访问效率太低,所以采用了将属性存放到后台的新的类中的方法,当有新方法被执行的时候,引擎将为其在后台“偷偷的”创建一个新类,当该方法中每当有新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论