论文部分内容阅读
随着网络的普及和发展,互联网作为网络学术文献的载体,在学术界的地位日益显著,提供的学术资源在广度和深度上都有了很大的发展。海量网络学术文献有着重要的学术价值,然而,由于其规模巨大、异构多样、无序分散、动态变化、更新速度快,很难为科研工作者所获取和有效利用,因此亟需一种快速有效的海量文献处理方法。海量数据的处理对服务器CPU、IO的吞吐都是严峻的考验,不论是处理速度、存储空间、容错性,还是在访问速度等方面,传统的技术架构和仅靠单台计算机基于串行的方式越来越不适应当前海量数据处理的要求。目前已有的海量数据处理方法在概念上较容易理解,然而由于数据量巨大,要在可接受的时间内完成相应的处理,只有进行并行化处理。通过提取出处理过程中存在的可并行工作的分量,用分布式模型来实现这些并行分量的并行执行过程,以便较好地解决海量文献处理过程中面临的内存消耗大、处理速度慢、特征向量维度高等问题。目前,大规模文本处理已成为一个挑战,同时也是海量数据处理研究领域的热点问题。海量数据处理研究的不断深入和开源软件的蓬勃发展,为海量网络学术文献的并行处理研究提供了契机。本文首先深入研究了开源软件Hadoop和Heritrix的主要架构、工作原理、突出特点等平台基础;然后较全面地分析了网络学术文献的主要来源及特点,网络学术文献的常用文件格式,并以此为切入点,设计了基于Heritrix与Hadoop的海量网络学术文献获取及并行处理模型。该模型首先利用Heritrix平台,通过获取方案设计、种子站点选择、抓取任务配置三个部分,编写相应的正则表达式,对种子站点进行抓取,将获取到的PDF文档资源镜像存储到本地磁盘;然后通过一个读目录程序DirReader将PDF文档存储路径分别读入数据库中,根据抽取出的学术文献特征,采用学术文献判定程序CheckPDF,对数据库中相应路径下的PDF文档进行学术文献判定;最后设计了学术文献预处理程序TxtCombine,该程序自动读取用户输入目录中全部的或抽样后的学术文献,将这些文件分别合并成一个Hadoop可以处理的大文件,并借助于Hadoop集群机器,运行IncidenceMatrix程序,通过笔者自定义的Mapper和Reducer函数,并行处理这些大文件,最终得到不同规模大小的词-文档矩阵。本文还从任务调度、任务数量、Combine函数、文件压缩、重用JVM五个方面论述了如何对MapReduce任务进行优化。最后通过搭建Heritrix平台和Hadoop机器集群,对本文提出的海量网络学术文献获取及并行处理模型中的各个部分,分别进行了具体实验,实验结果表明:本文提出的网络学术文献获取及并行处理模型,能够较好地解决目前海量网络学术文献处理过程中面临的内存消耗大、处理速度慢、特征向量维度高等问题。