什么应该是hadoop和mahout中正确的数据流?

时间:2014-11-03 05:54:30

标签: hadoop hive mahout mahout-recommender

我正在使用hadoop,hive和mahout技术。 我正在使用hadoop中的mapreduce作业处理一些数据,以便在mahout中进行推荐。 我想知道上面模型的正确工作流程,即当hadoop处理数据并将其存储在HDFS中时,那么mahout将如何使用这些数据以及如何获取这些数据以及在mahout处理数据之后,mahout将把这个数据放在哪里数据? 注意:我正在使用hadoop处理数据,我的同事正在使用不同机器上的mahout。 希望你能正确回答我的问题。

2 个答案:

答案 0 :(得分:2)

如果您想在mahout中从hadoop hdfs获取输入,那么您必须执行以下步骤 -

首先通过命令

将输入文件复制到hdfs
hadoop dfs -copyFromLocal input /

然后运行mahout命令进行推荐,从hdfs获取输入并将输出保存在hdfs中

假设您的JAVA_HOME已正确设置且Mahout已正确安装,我们已准备好配置我们的语法。输入以下命令:

$ mahout recommenditembased -s SIMILARITY_LOGLIKELIHOOD -i hdfs://localhost:9000/inputfile -o hdfs://localhost:9000/output --numRecommendations 25

运行该命令将执行一系列作业,其最终产品将是存储在命令语法中指定的目录中的输出文件。输出文件将包含两列:userID和itemIDs和得分数组。

答案 1 :(得分:0)

这完全取决于Mahout如何配置运行。 Mahout可以在本地模式或分布式模式下运行。我们需要设置" MAHOUT_LOCAL"变量

  MAHOUT_LOCAL       set to anything other than an empty string to force
                      mahout to run locally even if
                      HADOOP_CONF_DIR and HADOOP_HOME are set

例如,如果我们没有配置MAHOUT_LOCAL并尝试执行任何Mahout算法,那么您可以在控制台中看到以下内容。

MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop, 

在分布式模式下运行时,Mahout会将所有路径视为HDFS路径。因此,即使在Mahout处理您的数据之后,最终输出也将存储在HDFS中。