第 1 章 绪论
1.1 系统开发背景及意义
1.1.1 系统开发背景
在因特网发展初期,互联网用户极少,互联网还不是获取以及发布新闻的主流途径,在互联网上新闻查找比较容易。伴随着大数据时代的到来和大数据技术的蓬勃发展,互联网新闻数据的存储单位已经使用 GB 或 TB 甚至是 PB,记者获取新闻信息的重要途径已经变成了数据与数据库,并且以此进行新闻信息的分析[1]。同时随着新闻技术的飞速发展,互联网成为获取与发布新闻高效与便捷的途径,网络上的信息量急剧增长,已经成为了人类自古以来最大的一个综合性的信息数据库,拥有数量最多的资源、种类最全的资源、规模最大的资源,尤其是互联网以及社交应用的迅速普及,用户日益增加,导致全世界互联网上的新闻页面的规模每天以千万级别的数量增加,随之而来的是新闻信息量的爆炸式增长。网络中的新闻信息如同浩瀚的海洋而要寻找到所需要的新闻如同大海捞针.
互联网上的新闻信息量每时每刻都在大量增加,并以极快的速度更新,新闻的出现是瞬息万变的,所以通过传统方式以手工或者组织人力对所需新闻信息的查找已不切实际[3]。因此,人们迫切要求有一个网上新闻信息检索服务系统,能够在较短的时间内、在指定的范围内准确的检索到需要的新闻信息,并且对于不断发生的热点新闻能够进行及时的更新并让大众及时获得热点新闻信息[4]。
用户获取新闻必不可少的途径就是使用新闻检索系统,其工作原理是运用网络爬虫从网络上获取新闻并进行分析处理,向用户提供新闻的检索与导航服务,最终将新闻内容显示给用户的系统[5]。调查显示,继 E-mail 后新闻检索系统已成为互联网服务的第二大应用。企业网站希望为客户提供能快速获得企业信息与企业生产的产品信息的服务。各大门户网站希望通过提供准确快速的热点新闻来获得用户的青睐。能够满足用户需求的新闻检索系统应运而生。新闻检索系统不仅为国家大数据战略也为大数据时代的蓬勃发展贡献了重要力量。
.......................
1.2 国内外相关工作
目前的新闻检索系统虽然种类繁多,但由三个部分组成基本上是各新闻检索系统的共同特性:
新闻爬取器(Crawler):新闻爬取器即爬取新闻的网络爬虫,首先需要一个或多个新闻网页的链接,新闻爬取器从链接出发,发现新的新闻网页并保存这些新闻网页的快照,之后通过新闻爬取器的解析器分析它们,并从新闻网页的快照中提取出新的新闻网页链接,通过新闻爬取器的链接管理组件对链接进行去重与存储管理等操作从而对新闻网页的链接库进行扩充,为下一轮的新闻爬取提供新的出发链接。新闻爬取器循环执行上述流程源源不断的从互联网上获取所需要的新闻网页信息。
新闻索引器(Indexer):新闻索引器的功能是在新闻爬取器获得的新闻的基础上,以倒排索引为思想将新闻内容分词,经过进一步的停用词过滤以及使用TF-IDF 等算法为分词设置权重等操作后建立倒排索引。在中文新闻的索引建立过程中,新闻分词十分重要,因此需要选用优秀的中文分词工具对新闻进行分词,比较优秀的中文分词工具是中科院研发的 ICTCLAS 分词系统。
新闻搜索器(Searcher):新闻搜索器的作用是为用户提供新闻搜索服务.新闻搜索器收到用户选择的搜索条件后,对搜索条件进行解析并且检索倒排索引文档,根据索引建立时设置的权重以及一定的评分策略,对匹配搜索条件的新闻进行排序,并将排序后的新闻进行高亮处理等操作返回给用户,便于用户能够进一步准确获取所需的新闻。
......................
第 2 章 相关工作
2.1 Hadoop 分布式计算平台
在众多开源的分布式计算平台中 Hadoop 是其中重要的一员,是属于 Apache软件基金旗下的一个重要的顶级项目[15-20]。Hadoop 是 Apache Lucene 创始人创建的,他们的创始人都是 Doug Cutting,其中 Lucene 是一个应用广泛的文本搜索系统库。对 Hadoop 追根溯源时能发现,Hadoop 起源于开源的网络搜索引擎项目 Apache Nutch,该项目始于 2002 年,该项目本身也是 Lucene 项目的一部分。
分布式文件系统 HDFS 和分布式编程模型 MapReduce 是 Hadoop 的两大核心组件,作为优秀的分布式基础架构,对于用户该系统具有系统底层细节透明的优点。该分布式系统的优势在于它允许使用者在不了解其系统的底层细节的情况下开发分布式并行程序,这是因为其组件 HDFS 具有高容错性、高伸缩性等优点。所以 Hadoop 的使用者可以非常容易的管理组织计算机资源,搭建自己的分布式集群,高效地使用集群的并行计算和海量数据存储能力,完成海量数据的处理。经过业界和学术界长达 10 年的锤炼,目前的 Hadoop2.X 版本不仅非常成熟而且非常完善,在实际的数据处理和分析任务中担当着不可替代的角色。现在的 Hadoop2.X 版本发展的子项目 HGFS、Hadoop 已经非常成熟与可靠,与此同时它也成为了与 Pig、ZooKeeper、Hive、HBase、Mahout 等项目密切相关的大型应用工程,它们共同构成了 Hadoop 生态系统,成为大数据处理中的中流砥柱。
众所周知,Hadoop 计算框架是基于 Java 的,所以它的运行是必须依赖 Java的 JDK。因此 Hadoop 版本的更新也与 JDK 的更新息息相关。Hadoop 2.X 是基于 JDK 1.7 开发的,而 JDK 1.7 在 2015 年 4 月已停止更新,Hadoop 社区顺应技术发展基于 JDK 1.8 发布 Hadoop3.0 版本作为新版本。Hadoop 版本的升级也带来了一些重要的功能和优化:包括 HDFS 在不降低可靠性的前提下、节省一半存储空间的 HDFS 可擦除编码,支持在一个集群中一个 Active、多个 Standby NameNode 部署方式的多 NameNode 支持,提高 30%性能 MR Native Task 优化,YARN 基于 Cgroup 的内存和磁盘 IO Disk 隔离和 YARN container resizing 等.
2.2 ZooKeeper 分布式应用协调服务
ZooKeeper 直译为动物园管理员。在整个 Hadoop 生态系统中,他管理着系统中各个成员。它的功能是为分布式应用提供协调服务功能而且具有开源的优点。用户使用它可以对分布式应用进行同步操作、应用配置与管理等操作。研发人员必定知道,为分布式应用提供优秀协调服务是非常困难的,因为协调服务非常容易出错而且想进行恢复也极其困难。ZooKeeper 通过帮助分布式应用分担协调工作的压力从而让分布式应用集中精力完成功能服务,既保证了分布式应用的安全性与稳定性又提高了效率。ZooKeeper 在 Hadoop 集群中的作用如下:
(1) 加强集群稳定性:ZooKeeper 通过让 Hadoop 分布式进程共享一种与标准文件系统相似的命名空间,从而实现进程互相协同工作的。这些命名空间由一系列类似于文件系统中文件和文件夹目录的数据寄存器组成。跟文件系统作对比可以发现 ZooKeeper 拥有着极高的吞吐率与极低的延迟率的优点,这是因为它不像文件系统那样将数据保存在存储区域而是将数据保存在内存中。这让 ZooKeeper 比文件系统的更可靠,性能更优秀且更稳定还能有序的访问。
(2) 加强集群持续性:ZooKeeper 是由多个可以彼此之间能够互相通信的服务器组成。各个服务器将自己的状态,自己的操作日志文件与持久化快照保存在内存中。只要大多数的服务器是可用的,那么 ZooKeeper 就是可用的。
(3) 保证集群有序性:为保证集群的有序,当进行更新操作时 ZooKeeper使用数学编号为操作标记。这样能保证 ZooKeeper 交互的有序。因为集群具有有序性,所以之后类似同步操作的更高级别的操作才能被完成。
(4) 保证集群高效性:ZooKeeper 的高效更表现在以读为主的系统上。即使在读写比例大约为 10:1 的包含上千台服务器的分布系统,它的表现也极其优异。
.........................
第 3 章 系统总体设计 ................... 19
3.1 系统功能需求分析 .................. 19
3.1.1 系统总体功能需求 .................... 19
3.1.2 用户管理与系统管理需求分析 ............... 20
第 4 章 系统关键技术 ................. 36
4.1 索引管理关键技术 .................. 36
4.1.1 新闻过滤 ................ 36
4.1.2 关键词提取 ................ 37
第 5 章 系统实现与测试 ................ 47
5.1 测试准备 ..................... 47
5.2 功能实现与测试 .............. 48
第 5 章 系统实现与测试
5.1 测试准备
在整个新闻检索系统研发完成后,对系统进行测试是不可或缺的一环,根据对系统的完成情况进行全面的测试以验收系统的质量。系统通过测试环节,可以检验新闻检索系统能否满足用户对系统提出的功能和性能需求,并获得系统的实际运行结果,对比预期的运行结果并进一步完善系统,从而提升系统质量和系统的可用性,从而满足用户的对系统的要求。
本系统研发时,系统测试环境列表,如表 5-1 所示。
......................
第 6 章 总结与展望
6.1 论文总结
当今世界已经进入了大数据时代,同时随着网络技术与新闻技术的进步,互联网已经成为人们获取新闻的最重要的途径。每天人们在互联网上发布海量的新闻,这不仅对需要获取所需新闻的人们提供了可靠的新闻来源,而且可以获取到大量的相关信息,但是事物总有两面性,要在海量的新闻中快速准确地发现所需的新闻无异于大海捞针。同时,实验室的舆情大数据系统也需要为用户提供高效准确的新闻检索服务。因此,依托实验室的舆情大数据系统,本文研究并实现了新闻检索系统来满足用户需求。
本文研究与实现的新闻检索系统包含了新闻获取功能,依靠分布式文件系统 HDFS 对获取到的新闻进行存储,提高了系统的扩展性与性能并且满足未来对海量新闻进行存储的需求。还包含了新闻的索引管理,以倒排索引为思想结合 MapReduce 编程模型,采用本文设计的索引目录结构与文中的关键技术对新闻进行高效的索引管理。最后还包含了新闻搜索模块,根据建立的索引以及MapReduce 编程模型与文中的算法为用户提供高效的新闻搜索功能。
在整个系统的研究与实现过程中,需要将系统需要的理论与实践相结合,才能完成满足用户需求的系统。在整个研究与实现过程中,不仅对以前掌握的框架技术进行了巩固,而且还拓展了大数据以及数据挖掘方面的知识。尤其是不仅学习了 Hadoop 的理论,还将其应用到了系统中,对本人未来的工作打下了牢固的基础也提高了本人解决问题的能力。
参考文献(略)