hadoop系统中r程序的实现

kdfy810k  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(314)

我用r语言编写了mapper和reducer程序。我使用hadoop流实用程序在hadoop上执行r程序。我的限制是我需要输入2个文本文件到Map程序。如何实现?请尽早协助。
对于单输入,我将输入文件放在hdfs中,并使用stdin命令引用它们

7z5jn7bk

7z5jn7bk1#

这是一个很好的教程,教你如何在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文件夹中的所有文件并对其进行处理。
希望这能解决你的问题。

5lhxktic

5lhxktic2#

如果指定多个输入文件,则它们都通过stdin传输。记录的顺序是任意的。想知道你在某个特定的时间读的是哪一本书,你可以打电话 Sys.getenv("map_input_file") .

相关问题