我已经使用R语言编写了Mapper和Reducer程序。我正在使用Hadoop流媒体实用程序在hadoop上执行R程序。我的约束是我需要向mapper程序输入2个文本文件。如何实现呢?请尽早提供帮助。
对于单输入,我将输入文件放在HDFS中并使用stdin命令引用它们,但是如何为多个输入文件实现输入
最佳答案
这是great tutorial,教您如何在Python中使用Hadoop流。但是,该教程中的示例是通过执行以下操作从目录中读取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文件夹中的所有文件并进行处理。
希望这能解决您的问题。