论文部分内容阅读
语料库是指基于不同目的收集起来的文本集合。在网络环境下收集的语料库,其包含的文本大小一般为KB级别,很少达到MB级别,故称之为小文本语料库。由于语料库中所包含的文本数据通常规模庞大,处理时计算量大,且许多操作具有并行性,因而产生了将文本处理迁移到分布式并行处理平台的趋势。近几年出现的Hadoop云平台,由于其具有良好的海量数据存储和高效计算能力,且是一个开源平台,因而被广泛应用于海量数据的分布式并行处理中。Hadoop的两个核心组件分别是:HDFS分布式文件系统和Map Reduce并行计算模型。HDFS为MapReduce的计算提供了底层存储支持,其存储数据的方式决定了Hadoop的整体性能与MapReduce处理的速度。由于HDFS是为流式大文件设计的,其在处理小文本时,存在着一些客观问题:一是NameNode占用内存过大,可能会出现溢出,由于各小文本的元数据占据固定大小内存,小文本数量越大,内存占用越大,甚至溢出;二是大量读取小文本时,需在DataNode间频繁跳转,导致读取性能降低;三是相比同等大小的大文本,小文本语料库处理速度过慢。为了解决小文本语料库在Hadoop平台存储中,出现上述分布式存储与检索速度间的矛盾问题,本文提出了一种新的HSCS(Hadoop Smalltexts Corpus Storage)存储策略。该策略首先使用小文本合并技术在HDFS架构中添加一层Merge_Client,将多个小文本文件合并为目录结构式的大文本文件,有效减少了内存压力和访问DataNode的次数;然后采用小文件检索技术,给合并后的大文本文件添加一个二级索引结构及设计索引记录的数据结构,并且添设一个索引文件阈值,当超过阈值时,使用虚拟内存技术,将使用频率最低的索引文件置换到对换区中,减少文件管理的空间复杂度,从而解决了在合并为目录结构式的大文本文件中,快速检索所需小文本问题,有效提高了小文本的检索速度。最后设计的实验,对比了小文本语料库合并前与合并后的写入速度和文本预处理速度,对比了采用HSCS方法和SequenceFile方法的文本检索速度,以及对比了采用虚拟存储技术后无需置换时与置换时的检索速度。实验结果表明,本文提出的新的HSCS存储策略在处理小文本语料库时是可行有效的。