在使用 hadoop 管道运行 hadoop map reduce 程序时,map reduce 找不到 hdfs 中存在的文件。如果程序在没有 hadoop 管道的情况下执行,则 libhdfs 库很容易找到该文件,但是在运行程序时使用
hadoop pipes -input i -ouput o -program p
命令,libhdfs 找不到该文件,并抛出 java.io.exception。已尝试在命令中包含 -fs 参数,但结果仍然相同。我还在文件中包含了 hdfs://localhost:9000/ ,但仍然没有结果。文件参数在c代码中为:
file="/path/to/file/in/hdfs" or "hdfs://localhost:9000/path/to/file"
hdfsFS fs = hdfsConnect("localhost", 9000);
hdfsFile input=hdfsOpenFile(fs,file,O_RDONLY,0,0,0);