Mahout K-means を実行すると、奇妙な状況が発生します。事前に選択された初期重心のセットを使用して、lucene.vector によって生成された SequenceFile で K-means を実行します。実行はテスト目的のため、ファイルは小さいです (約 10MB~10000 ベクトル)。
K-means が単一のマッパー (私のクラスターでは 128MB である Hadoop 分割サイズを考慮したデフォルト) で実行されると、2 回の反復で所定のクラスタリング結果に到達します (ケース A)。ただし、より多くのマッピング タスクを起動することで、アルゴリズムの実行速度が改善/低下するかどうかをテストしたかった (Hadoop クラスターには合計 6 つのノードがある)。したがって、-Dmapred.max.split.size パラメーターを 5242880 バイトに設定して、mahout が 2 つのマッピング タスクを起動するようにします (ケース B)。確かに 2 つのマッパーを開始することに成功しましたが、奇妙なことに、ジョブは 2 回ではなく 5 回の反復で終了し、クラスタへのポイントの最初の割り当てでも、マッパーは単一マップの実行とは異なる選択をしました。
この動作は、既存の K-means Mahout 実装によって正当化されるでしょうか?