Hadoop作业无法看到文件,hadoop fs -cat打印就好了

时间:2014-11-03 18:22:42

标签: java hadoop hdfs

我有一些代码可以在启动作业之前从main()调用的函数中访问hdfs上的文件。

这是mac上的单节点集群(伪分布式模式)。

由于我在启动作业之前调用了该函数,我不确定这是否是一个问题,但我收到以下错误:

java.io.FileNotFoundException: hdfs:/localhost/usr/local/tmp/hadoop/hadoop-${user}/data/input/file.csv (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at org.apache.mahout.common.iterator.FileLineIterator.getFileInputStream(FileLineIterator.java:116)
    at org.apache.mahout.common.iterator.FileLineIterable.<init>(FileLineIterable.java:53)
    at org.apache.mahout.common.iterator.FileLineIterable.<init>(FileLineIterable.java:48)
    at profile2sparse.MRDriver.createDictionaryChunks(MRDriver.java:98)
    at profile2sparse.MRDriver.main(MRDriver.java:177)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

我可以使用hadoop fs -cat

查看此文件的内容

谢谢和问候, 阿图。

1 个答案:

答案 0 :(得分:0)

您是否可以使用以下命令捕获文件?
hadoop fs -cat hdfs:/ localhost / usr / local / tmp / hadoop / hadoop - $ {USER} /data/input/file.csv

如果是,则表示您的程序中未解析$ {user}。确保将$ {user}大写为$ {USER}。