-1

我使用 R 语言编写了 Mapper 和 Reducer 程序。我正在使用 Hadoop 流式实用程序在 hadoop 上执行 R 程序。我的限制是我需要向映射程序输入 2 个文本文件。如何实现?请尽早协助。

对于单个输入,我将输入文件放在 HDFS 中并使用 stdin 命令引用它们。但是如何为多个输入文件实现它

4

2 回答 2

0

如果您指定多个输入文件,它们都通过标准输入进行流式传输。记录顺序是任意的。要确定您在特定时间实际阅读的内容,您可以调用Sys.getenv("map_input_file").

于 2013-08-13T18:30:51.407 回答
0

这是一个很棒的教程,教你如何在 Python 中使用 Hadoop Streaming。但是,该教程中的示例是通过执行以下操作从目录中读取 3 本书,在您的情况下为 2 个文件:

hduser@ubuntu:/usr/local/hadoop$ 
bin/hadoop jar contrib/streaming/hadoop-*streaming*.jar \
-file /home/hduser/mapper.py    -mapper /home/hduser/mapper.py \
-file /home/hduser/reducer.py   -reducer /home/hduser/reducer.py \
-input /user/hduser/gutenberg/* -output /user/hduser/gutenberg-output

-input /user/hduser/guttenberg/* 

将读取该 HDFS 文件夹中的所有文件并进行处理。

希望这能解决您的问题。

于 2013-10-12T14:59:29.030 回答