论文部分内容阅读
2008年以来,云计算在IT业被广泛关注。云计算被看作是分布式处理、并行处理以及网格计算发展的产物,其中云计算的关键是并发、分布,核心是海量数据处理。但是云计算只是一种方法模型,要想真正实现它的价值,除了硬件以外,还要有软件平台及能够在此平台上高效运行的分布式程序。海量数据处理的问题在数据挖掘领域经常遇见,许多传统挖掘算法存在如下瓶颈:只适合于小规模的数据量,如果当数据量增大时,它们将不再适用,效率方面将会受到很大影响。然而,云计算的出现恰好解决了这样的问题,它的优势就在于处理大规模数据,如果我们在云计算平台上能够实现相应的传统数据挖掘算法,那么上述的传统数据挖掘算法的瓶颈问题将会得到有效解决。而能否借助云计算平台切实解决传统数据挖掘算法的上述瓶颈,关键的问题还在于能否将相应的数据挖掘算法进行并行化实现。本文的贡献在于详细介绍了传统朴素贝叶斯算法的执行流程,指出了其存在的瓶颈问题,并提出了并行化的解决方案。然后详细介绍了 Hadoop平台上传统贝叶斯算法MapReduce化的实现方法,最后通过传统贝叶斯算法与MapReduce化贝叶斯算法处理数据实验的对比,证明了云计算平台上数据挖掘算法的并行化大大降低了大规模数据的处理时间,并且通过实验,分析了 MapReduce化贝叶斯程序的几个主要性能参数对作业运行时间的影响。本文在九个节点上搭建Hadoop集群,通过六种不同的实验方案执行传统贝叶斯程序和MapReduce化贝叶斯程序,然后分析作业运行结果。结果表明:1)MapReduce化贝叶斯算法与传统算法相比,具有处理大规模数据的能力;2)MapReduce化的贝叶斯算法具有较好的加速比;3)延迟时间、备份个数和内存缓冲区大小影响着MapReduce化贝叶斯程序的性能;4)单点故障对作业的运行时间产生较大影响。实验结果验证了本论文提出的MapReduce化的贝叶斯方案的可执行性和高效性。本论文的研究为贝叶斯分类算法的并行化提供了可行的MapReduce化方案。