论文部分内容阅读
随着宽带互联网的迅速发展,网络规模不断扩张,网络流量高速增长,网管系统所需要存储和处理的流量数据日益庞大,这对现有的系统提出了挑战。目前的网管系统不支持分布式,存在扩展性差、计算效率低下等问题,其中最大的问题是无法处理更大的流量数据,比如一年的流量数据。对于大规模数据的分析一般的解决方法是采用分布式计算,将计算任务分配到多台机器上并行处理。但传统的分布式计算在实际操作中存在诸多问题,例如怎样有效地分割输入的数据和合理分配计算任务等。因此,如果有一种通用的分布式计算模型,由底层封装任务分配、并行处理、容错支持等细节,而由用户集中精力解决分布式计算的任务表达,就能极大地简化分布式程序的设计。由Google实验室提出的Map/Reduce正是这样一种模型,开源的Hadoop为该模型提供了Java实现。Hadoop平台天然的是一个适合于海量数据存储和计算的分布式平台,它的HDFS分布式文件系统最大化利用磁盘实现海量数据的存储,具有很好的扩展性;它所实现的Map/Reduce计算模型最大化利用CPU实现对存储在HDFS上的海量数据的快速计算,从而实现对大规模流量数据的分析。
本文首先介绍了Hadoop在国内外的发展现状,明确了研究的方法和意义。在深入分析现有网管系统及其存在的问题的基础之上,针对这些问题提出了基于Hadoop平台的流量数据分析方案。本文主要研究了Hadoop平台的关键技术:HDFS分布式文件系统和Map/Reduce计算模型,以及其子项目Hive数据仓库分析工具。在掌握Hadoop相关技术的基础之上,本文重点阐述了如何实现基于Hadoop平台的流量数据分析,具体则是将Map/Reduce计算模型应用到流量分析领域中十分常见的TopN计算。通过和现有系统的性能比较,表明了网络流量数据分析的Hadoop实现较现有网管系统具有很大的优势。另外,由于Hive是为了简化Map/Reduce程序而生,本文亦尝试将Hive应用于流量数据分析。最后,本文还对Hadoop的性能进行了优化,大幅度减少Hadoop分析流量的运算时间。
最后,本文对所做的研究工作进行了总结,并提出了下一步需要改进的地方。