论文部分内容阅读
过去几年间,互联网存储的信息量增长了成千上万倍,数据环境千变万化,数据量爆炸式增长,用户需求的个性化,交互的增加和实时性,导致传统的数据库和数据处理系统已经无法处理。传统的数据库系统侧重于数据的一致性和可用性,性能、可扩展性上都比较差,无法满足可扩展性和实时性的要求。谷歌和雅虎等公司,采用NOSQL数据库(如HDFS数据库),利用平常的计算机组成族群,开发了一些可扩展的、灵活的、容错性强的海量数据框架(如Hadoop)来处理日常海量业务数据。数据流和数据框架组合在一起,形成数据流管理系统,在不存储信息的情况下,能够实时、持续不断的处理海量数据,目前很多公司已经具备自己的数据流管理系统,如yahoo S4系统、facebook puma、twitter strom、阿里iprocess等等。一个成功的数据流系统必须能够根据数据流达到情况而弹性的分配节点任务量,而且具备安全检查机制,当系统崩溃后可以从安全检查点进行恢复,最后一个特性是数据流系统的可用性,用户可以方便的使用该平台。雅虎S4系统作为一个海量数据流处理系统,受到各个公司的热捧,然而这个系统依然存在不足。本论文在S4系统的基础上,探讨通过引进查询特征和处理数据节点的机制来进行java库的开发,增加S4系统的可用性,论文中将改进后的系统称为S4_S。S4_S代替原来系统的代码扩展机制,用户通过书写连续的声明语句就可以创建新的流应用。在论文后面会证明改进系统处理数据的能力,以及用网络服务监控器和预测新浪微博话题两个应用程序证明运用此系统如何方便快捷的新建复杂的流应用。论文最后用一个处理文本数据的实验例子来分析了S4S系统的可扩展性、资源使用情况与容错性,实验结果证明系统的可扩展性满足要求,而容错性不符合预期。结合实验的结果与S4本身系统的比较,给出论文的下一步研究方向即如何让S4S系统更加简单更加稳定,并且可智能的积极响应系统不断变化的环境。