论文部分内容阅读
随着网络和信息技术的不断发展,网上购物以其方便、快捷的特点受到越来越多用户的青睐,随之带来寄递数据量的激增。海量的寄递数据给企业带来了新的挑战。企业传统的分析系统是将数据存储在关系数据中,这种系统架构在分析海量寄递数据时,会遇到瓶颈。而且,随着数据量的增长,这种系统的扩展代价昂贵。因此,本课题致力于构建一种全新的寄递数据分析系统。本文的研究内容主要包括以下几个方面:(1)学习和研究现有的大数据处理技术。现有的大数据处理技术以批量计算和流式计算两种模式为主导,通过对比分析,本文选取Hadoop和Storm作为本系统分析计算的核心组件。通过对Hadoop、Hive、Flume、Kafka、Storm等开源软件的学习,深入理解大数据处理技术的两种模式。(2)分析现有“安监”系统瓶颈,提出本系统的建设目标。现有“安监”系统的瓶颈,主要集中在一些较为复杂的分析统计功能的性能上。当面单数据的量达到5000(万)条时,业务量运行查询统计、业务量趋势预测等较为复杂查询统计功能的分析时间超过500秒,系统超时。本系统的建设目标是通过构建新分析系统,克服“安监”系统分析瓶颈,并在新系统上实现上述复杂的分析统计功能。(3)给出本系统的架构设计,并根据架构设计对系统进行实现。系统包括数据采集模块、数据预处理模块、数据存储与分析模块和数据展示模块等4个模块。数据采集模块是系统建设的基础。其中“安监”系统采用的是Log4j记录系统日志。寄递大数据分析系统使用Flume日志收集工具将日志文件进行采集,并统一写入HDFS中。针对“安监”系统数据库(关系数据库)中的结构化数据,本系统采用Java程序定期抽取。针对实时采集数据,本系统采用Flume将Log4j日志消息直接推入Kafka中。数据预处理模块是系统重要组部本分之一。本系统通过数据预处理模块将数据处理成“干净”可靠的数据。数据存储和分析模块是系统的核心模块。针对业务需求,本文系统使用Hive、MapReduce和Storm这3种不同的数据分析处理技术对数据进行分析。数据展示模块是将系统结果进行展示。此模块采用了主流J2EE架构和MVC编程模式进行设计和实现,可向用户提供友好的展示界面。(4)搭建系统环境,并对本系统进行测试和验证。本课题搭建了一个20个节点机器的Hadoop集群和5个节点机器节点的Storm集群,对系统进行测试和验证。实验表明,当面单数据的规模为5000(万)时,系统的分析处理时间减少到100秒左右,完全满足设计要求。本课题设计并实现了寄递大数据分析系统,克服传统的关系数据库分析系统对海量寄递数据分析的性能瓶颈问题。并通过实验,证明了该系统在分析海量的寄递数据方面具有明显优势。