【问题标题】:how to use startPhase in Mahout如何在 Mahout 中使用 startPhase
【发布时间】:2013-01-02 00:28:49
【问题描述】:

我正在从 Mahout 0.7 运行一些基于 RecommenderJob (org.apache.mahout.cf.taste.hadoop.item.RecommenderJob) 的作业,并注意到有 startPhase 和 endPhase 等选项。我猜这些只是运行管道的一部分,假设您有来自先前运行的必要输入数据。但是我很难理解 RecommenderJob 中有哪些阶段。我正在阅读源代码,但看起来需要一段时间。与此同时,我想知道是否有人可以阐明如何在 RecommenderJob 类中使用这些选项(尤其是 startPhase)?

【问题讨论】:

    标签: mahout mahout-recommender


    【解决方案1】:

    这是我发现的:

    阶段 0 是关于 PreparePreferenceMatrixJob 的,它有 3 个 hadoop 作业:

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

    第一阶段是关于 RowSimilarityJob,它有 3 个工作:

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

    第 2 阶段是关于 RecommenderJob,它有 3 个工作:

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

    第三阶段是最后一个,它只有一个工作:

    RecommenderJob-PartialMultiplyMapper-Reducer
    

    RecommenderJob 类中阶段 1 的输出也与 ItemSimilarityJob 阶段 0 和 1 的输出完全相同(但临时目录名称不同)。

    【讨论】:

      【解决方案2】:

      是的,没错。这是一个相当粗糙的机制。实际上,它控制运行一系列 MapReduce 作业中的哪一个。你必须阅读代码才能知道它们是什么,是的。它们因工作而异。

      如果我再做一次,我会让它检测到输出的存在以知道跳过工作。 (这就是我在我的下一代推荐项目中所做的。)

      【讨论】:

        猜你喜欢
        • 2014-09-08
        • 2011-02-13
        • 1970-01-01
        • 1970-01-01
        • 2015-09-25
        • 1970-01-01
        • 2014-02-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多