我正在使用hadoop、hive和mahout技术。我正在用hadoop中的mapreduce作业处理一些数据,以便在mahout中进行推荐。我想知道上述模型的正确工作流程,即当hadoop处理数据并将其存储在hdfs中时,mahout将如何使用这些数据,mahout将如何获得这些数据,在mahout处理这些数据之后,mahout将把这些推荐的数据放在哪里?注意:我正在使用hadoop处理数据,我的同事正在另一台机器上使用mahout。希望你答对了我的问题。
bqjvbblv1#
这完全取决于mahout的运行配置。mahout可以在本地模式或分布式模式下运行。我们需要设置“mahout\u 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\u local并尝试执行任何mahout算法,那么您可以在控制台中看到下面的内容。
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath. Running on hadoop,
在分布式模式下运行时,mahout将所有路径视为hdfs路径。因此,即使在mahout处理完数据之后,最终输出也将存储在hdfs中。
plupiseo2#
如果您想从mahout中的hadoophdfs获取输入,那么必须执行以下步骤-首先通过命令将输入文件复制到hdfs
hadoop dfs -copyFromLocal input /
然后运行mahout命令,从hdfs获取输入并将输出保存在hdfs中假设您的javau主页设置正确,mahout安装正确,我们就可以配置语法了。输入以下命令:
$ mahout recommenditembased -s SIMILARITY_LOGLIKELIHOOD -i hdfs://localhost:9000/inputfile -o hdfs://localhost:9000/output --numRecommendations 25
运行该命令将执行一系列作业,其最终产品将是存放到命令语法中指定的目录中的输出文件。输出文件将包含两列:userid和itemids和score数组。
2条答案
按热度按时间bqjvbblv1#
这完全取决于mahout的运行配置。mahout可以在本地模式或分布式模式下运行。我们需要设置“mahout\u local”变量。
例如,如果我们没有配置mahout\u local并尝试执行任何mahout算法,那么您可以在控制台中看到下面的内容。
在分布式模式下运行时,mahout将所有路径视为hdfs路径。因此,即使在mahout处理完数据之后,最终输出也将存储在hdfs中。
plupiseo2#
如果您想从mahout中的hadoophdfs获取输入,那么必须执行以下步骤-
首先通过命令将输入文件复制到hdfs
然后运行mahout命令,从hdfs获取输入并将输出保存在hdfs中
假设您的javau主页设置正确,mahout安装正确,我们就可以配置语法了。输入以下命令:
运行该命令将执行一系列作业,其最终产品将是存放到命令语法中指定的目录中的输出文件。输出文件将包含两列:userid和itemids和score数组。