我已经在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
所以,我的问题是将文件到达子目录的命令是什么。
答案 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