1

Mahout 0.7 から RecommenderJob (org.apache.mahout.cf.taste.hadoop.item.RecommenderJob) ベースのジョブを実行していますが、startPhase や endPhase などのオプションがあることに気付きました。これらは、以前の実行からの必要な入力データがあると仮定して、パイプラインの一部のみを実行すると推測しています。しかし、RecommenderJob にはどのようなフェーズがあるのか​​を理解するのに苦労しています。ソースコードを読んでいる最中ですが、まだ時間がかかりそうです。それまでの間、RecommenderJob クラスでこれらのオプション (特に startPhase) を使用する方法を誰かが明らかにできるかどうか疑問に思っていますか?

4

2 に答える 2

3

これが私が見つけたものです:

フェーズ 0 は PreparePreferenceMatrixJob に関するもので、3 つの Hadoop ジョブがあります。

PreparePreferenceMatrixJob-ItemIDIndexMapper-Reducer
PreparePreferenceMatrixJob-ToItemPrefsMapper-Reducer
PreparePreferenceMatrixJob-ToItemVectorsMapper-Reducer

フェーズ 1 は RowSimilarityJob に関するもので、3 つのジョブがあります。

RowSimilarityJob-VectorNormMapper-Reducer
RowSimilarityJob-CooccurrencesMapper-Reducer
RowSimilarityJob-UnsymmetrifyMapper-Reducer

フェーズ 2 は RecommenderJob に関するもので、3 つのジョブがあります。

RecommenderJob-SimilarityMatrixRowWrapperMapper-Reducer
RecommenderJob-UserVectorSplitterMapper-Reducer
RecommenderJob-Mapper-Reducer

フェーズ 3 は最後のフェーズで、ジョブは 1 つだけです。

RecommenderJob-PartialMultiplyMapper-Reducer

また、RecommenderJob クラスのフェーズ 1 からの出力は、ItemSimilarityJob のフェーズ 0 および 1 からの出力とまったく同じです (ただし、一時ディレクトリ名は異なります)。

于 2013-01-18T06:17:42.933 に答える
1

それは正解です。かなり大雑把な仕組みです。実際には、一連の MapReduce ジョブのどれを実行するかを制御します。はい、それらが何であるかを知るためにコードを読む必要があります。職種によって異なります。

もう一度やり直した場合、出力の存在を検出して、ジョブをスキップするようにしました。(これは、次世代レコメンダー プロジェクトで行ったことです。)

于 2013-01-02T00:41:33.370 に答える