Q
实验八 K-Means 算法并行实现
一、算法原理
K-Means 算法通过指定 k 的值然后随机挑选出 k 个点,通过迭代计算,将所有的数据划分为
k 部分,每一个部分都有各自的中心点。
二、程序设计
K-Means 算法的并行化主要是通过数据的并行化扫描读取来进行的,同时假定 k 个点足够
小并能够放置在缓存中进行共享。在 map 的起始阶段通过读取缓存文件获取 k 个中心点的
信息,然后对于 map 读取的每一个记录通过计算比较来判定距离最近的中心点,然后输出
<中心点 ID,当前所有点个数,当前所有点的中心点>,在 map 阶段,当前所有点个数为
1,而当前所有点的中心点为当前记录点的信息。在 reduce 阶段,对于同一个中心点 ID 的
所有的点信息重新进行计算获取最后的中心点,然后输出,作为下一轮迭代的输入。
三、程序实现
Job 配置函数
Mapper 实现
1