什么是Hadoop Streaming Run Command来访问子目录中的文件

时间:2016-07-20 22:11:49

标签: python python-2.7 hadoop hadoop-streaming

我已经在python中为hadoop Map-Reduce框架编写了一个mapper程序。

我正在通过命令执行它:

hadoop jar /usr/hdp/2.3.2.0-2950/hadoop-mapreduce/hadoop-streaming.jar -mapper "python wordcount_mapper.py" -file wordcount_mapper.py -input inputfile -output outputfile3

如果目录 inputfile 仅包含文件,则它正常工作。

但如果目录 inputfile 中有子目录,则无效并显示错误。就像我在 inputfile 中的(KAKA和KAKU)中有两个子目录。

错误显示:

  

16/07/20 17:01:40 ERROR streaming.StreamJob:错误启动工作:没有   文件:hdfs:// secondary / user / team / inputfile / kaka

所以,我的问题是将文件到达子目录的命令是什么。

1 个答案:

答案 0 :(得分:0)

使用正则表达式:

inputfile/* - 适用于1级子目录

inputfile/*/* - 适用于2级子目录

运行方式:

hadoop jar /usr/hdp/2.3.2.0-2950/hadoop-mapreduce/hadoop-streaming.jar -mapper "python wordcount_mapper.py" -file wordcount_mapper.py -input inputfile/* -output outputfile3