5. count = 0, Sring[] partialSums;
7. while (values.hasNext()) do
8. partialSums = values.next().toString().split();
9. for (int i = 0; i < partialSums.length - 1; i++) do
10. point.array[i] += Double.parseDouble(partialSums[i]);
11. end for
12. count += Integer.parseInt(partialSums[partialSums.length - 1]);
13. end while
14. /*计算距离相似度平均值,并找出新的聚类中心*/
15. for (int i = 0; i < point.arr.length; i++) do
16. point.array[i] /= count;
17. end for
18. until convergence; //新聚类中心值与上次迭代的聚类中心值绝对值小于程序中预设值的阈值
19. end
20. Emit output.collect(null, Text(outStr)) as the new cluster center value;
(5)MapReduce k-means及初始化聚类中心并行时间复杂度分析
Hadoop MapReduce并行前k-means聚类中心选择及聚类算法时间复杂度是 ,在Hadoop集群中理想情况下,计算新的聚类中心均匀分布到slaves上执行,则Hadoop MapReduce并行后k-means聚类算法时间复杂度是 (其中 指Hadoop集群中slaves机器数目),表3.2给出Hadoop MapReduce并行前后k-means聚类算法时间复杂度对比。
表4.3 MapReduce k-means及初始化聚类中心并行时间复杂度分析
k-means及初始化聚类中心Hadoop MapReduce并行前Hadoop MapReduce并行后
时间复杂度
第五章 实验与结果评估分析
第一节 实验目的与设计
通过第四章Hadoop MapReduce并行编程框架下k-means聚类中心初始化并行策略与设计、相似矩阵近似法并行策略与设计、特征向量分解并行策略与设计和k-means并行策略与设计。相对于单机串行近似谱聚类算法,基于Hadoop集群的并行近似谱聚类算法实验是在确保其精确度的前提下,主要验证其加速比。本章设计相关基于Hadoop MapReduce并行编程框架下实验验证所提出的基于 稀疏相似矩阵优化的ASC算法并行策略与设计的正确性与其优势,并对所提出并行近似谱聚类算法时间复杂度与其串行近似谱聚类算法进行对比分析。实验分为两组,第一组计算所设计的并行ASCA的计算时间和精确度;第二组验证所设计的并行ASCA的加速比和可扩展性,最后,对实验结果进行分析。
第二节实验平台搭建与部署
一、实验平台搭建
基于Hadoop MapReduce并行近似谱聚类算法实验搭建12台Dell 2161服务器的集群,Hadoop集群服务器具体的配置信息如下表5-1所示。
表5-1 Hadoop集群服务器配置信息
CPUIntel(R) Core(TM) i3-2120 CPU @ 3.30GHz
内存2G
带宽1000Mb/秒
硬盘260G
操作系统Ubuntu 11.10
开发环境Hadoop1.2.1、JDK 1.7.0_21、Eclipse-java-galileo-SR2-linux
二、Hadoop集群部署信息
所搭建的Hadoop MapReduce集群实验环境,由1个NameNode、JobTracker和12个DataNode、TaskTracker节点,其中包括1台master机器与11台slave机器,具体的主机名、IP地址与节点类型参见表5-2所示。
表5-2 Hadoop MapReduce集群节点配置信息
主机名IP地址节点类型
ubuntu1-computer(master)NameNode/SecondNameNode/DataNode/JobTracker
ubuntu2-computer(slave)DataNode/TaskTracker
ubuntu3-computer(slave)DataNode/TaskTracker
ubuntu4-computer(slave)DataNode/TaskTrac