3

Hadoop を使用して Kmeans を実行しようとしています。Reducer の cleanup メソッドで計算されたクラスターの重心をいくつかのファイルに保存したいと思いますcentroids.txt。ここで、複数のレデューサーのクリーンアップ メソッドが同時に開始され、それらすべてが同時にこのファイルに書き込もうとするとどうなるかを知りたいと思います。内部で処理されますか?そうでない場合、このタスクを同期する方法はありますか?

これはレデューサーの私の出力ファイルではないことに注意してください。これは、重心を追跡するために私が維持している追加のファイルです。これを行うために、レデューサーのクリーンアップ メソッドから BufferedWriter を使用しています。

4

3 に答える 3

0

重心は比較的少ないので、Zookeeper に書き込むことができます。読み取り/書き込みの負荷が高い場合は、おそらく HBase が必要になるでしょう (ここでも使用できますが、やり過ぎです)。

Mahoutのように、Hadoop にはいくつかの k-means 実装があることにも注意してください。これらの実装の一部は、BSP を使用するApache Hamaやインメモリで実行されるSparkなどの map/reduce よりも効率的です。

于 2014-04-25T18:27:59.677 に答える