【发布时间】:2010-12-27 08:18:39
【问题描述】:
我为 Hadoop 编写了一个简单的 k-means 集群代码(两个独立的程序 - 映射器和化简器)。该代码正在处理我本地盒子上的一个二维点的小数据集。它是用 Python 编写的,我打算使用 Streaming API。
我想就如何最好地在 Hadoop 上运行这个程序提出建议。
每次运行 mapper 和 reducer 后,都会生成新的中心。这些中心是下一次迭代的输入。
据我所知,每次 mapreduce 迭代都必须是一个单独的 mapreduce 作业。看起来我必须编写另一个脚本(python/bash)来在每个 reduce 阶段之后从 HDFS 中提取新中心,并将其反馈给 mapper。
还有其他更简单、更简洁的方法吗?如果集群碰巧使用了一个公平的调度器,那么这个计算完成之前会很长吗?
【问题讨论】:
标签: python streaming hadoop mapreduce iteration