2014-08-27 59 views
0

我运行此的hadoop streaming命令JAR档案:Hadoop的流不能访问

/home/hduser/hadoop/bin/hadoop jar 
/home/hduser/hadoop/share/hadoop/tools/lib 
/hadoop-*streaming*.jar 
-file audio.py 
-cacheArchive  hdfs://localhost:54310/user/hduser 
    /input/audio/cacheaudiodir.jar#cacheaudiodir 
-input /user/hduser/input/audio -output /user/hduser/output 
-mapper audio.py -cmdenv AUDIO_DIR=cacheaudiodir 

,当我尝试引用 'cacheaudiodir' 在我的Python映射器我得到的错误:No such file or directory,如:

dir_a='cacheaudiodir' 
filelist_a = commands.getoutput('/home/hduser/hadoop/bin/hadoop fs -ls ' + dir_a) 

如何指向此符号链接文件夹中的文件?

+0

os.path.realpath(dir_a)具有值/tmp/nm-local-dir/usercache/hduser/filecache/2424241732660840311/cacheaudiodir.jar,因此符号链接似乎指向了jar文件而不是解压缩文件。 – schoon 2014-08-27 19:47:48

+0

我试过一个tar.gz而不是.jar而无济于事。 ls -alh给出: lrwxrwxrwx 1 hduser hadoop 84 Aug 28 11:12 cacheaudiodir - > /tmp/nm-local-dir/usercache/hduser/filecache/545566332614620494/cacheaudiodir.tar.gz – schoon 2014-08-28 10:30:50

回答

0

似乎cachearchive在本地解压,而不是在hdfs中,所以'hadoop fs -ls'找不到'ls'。