论文部分内容阅读
随着网络的快速发展,网络的性能保障和安全检测变得越来越重要。网络溯源分析系统(RAS)是近年发展出来的一种网络内容分析和故障定位的重要工具。RAS需要抓取和保存海量的网络数据包,必须要有高效的存储系统的支持。Apache Hadoop是一个分布式框架,允许使用简单的编程模型跨计算机分布式处理大型数据集的集群,它提供一种分布式存储文件的系统(HDFS),数据被存储在计算节点上以提供极高的跨数据中心聚合带宽。因此,HDFS适合用于保存RAS的海量数据。RAS抓取的网络数据包(PCAP)文件的大小为30到60M之间,如果直接将这些海量的数据包存储到HDFS中将导致HDFS的效率变低。因为HDFS最初是用来处理大文件的,不适合存储大量的小文件。为了解决将RAS部署在HDFS集群出现效率变低的问题,本研究对HDFS进行适当的改进,实现了一种合并小文件加分布式缓存的机制(MDCM),最后为了进一步加快文件的读取效率,添加了一种最大接近阈值算法来合并小文件。(1)MDCM机制内容主要如下:在把RAS的网络数据文件上传到HDFS过程中,添加了一个预处理机制将数据文件按照上传顺序进行合并,减少了文件的数量从而降低了集群的NameNode内存消耗;同时建立小文件索引(SMI)加快文件的读取效率。对原始的HDFS做出了适当的改进,使得NameNode保持文件分配等功能,将文件块的元数据信息分布式保存到存储对应块的DataNode中,建立合并文件和对应的DataNode之间的索引(MDI)。当从HDFS集群查询文件,不用再去NameNode中查找分布式文件块的元数据信息,只需获取SMI和MDI,然后直接去和DataNode交互。(2)最大接近阈值合并文件算法(MCTCA):为了进一步的提高文件的读取效率,在合并文件时采用一种最大接近阈值HDFS块的大小方法来合并小文件,使得每个合并后的文件大小最大接近HDFS的块的大小,在HDFS集群中只需要一个块来存储该文件,从而块的元数据信息也只有一个,当读取文件时只需和一个DataNode节点交互获取数据。实验结果证明本研究提出的优化机制确实能够有效地解决HDFS存储RAS的海量小数据包时遇到的性能问题,使得RAS系统可以高效地运行在本文优化的HDFS上。