我有一些代码可以在启动作业之前从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
查看此文件的内容谢谢和问候, 阿图。
答案 0 :(得分:0)
您是否可以使用以下命令捕获文件?
hadoop fs -cat hdfs:/ localhost / usr / local / tmp / hadoop / hadoop - $ {USER} /data/input/file.csv
如果是,则表示您的程序中未解析$ {user}。确保将$ {user}大写为$ {USER}。