这是我本学期课程《高级数据库》的一个作业,目的是让熟悉一下Hadoop平台,发出来希望对需要的人有点帮助。
一、题目要求
大规模(百万以上)中文网页聚类
分布式计算平台:Hadoop数据输入:未经处理的原始网页
数据输出:对每一个网页进行聚类标注
输入数据说明:每一行为一个网页。
Key (LongWritable) 每一个网页的全局ID号Value (Text) 网页内容
输出数据说明:每一行为一个网页。
Key (LongWritable) 每一个网页的全局ID号Value (IntWritable) 该网页所属聚类中心编号
程序提交说明:
1. 建议使用eclipse进行程序开发,提交.jar文件。
2. 使用fatjar插件进行打包。
3. 主函数传入参数说明:
hadoop jar ***.jar [inputData path] [output path] [tmp path] [cluster number] [maxIterations]
inputData path: 输入数据路径(HDFS)
output path: 输出数据路径(HDFS)
tmp path: 中间临时文件路径 (HDFS),程序运行结束,后台会删除里面的所有东西
cluster number: 聚类中心数
maxIterations: 最大迭代次数
例如:hadoop jar kmeans.jar hdfs://master:54321/inputdata/ hdfs://master:54321/output/ hdfs://master:54321/tmp/ 100 50
二、总体设计思路
Kmeans算法的基本思想:
(1)、随机选取k个样本点Sample作为初始质心Centroid