gpt4 book ai didi

hadoop - 尝试将文件存储在 hadoop 分布式缓存中时出现 FileNotFound 异常

转载 作者:可可西里 更新时间:2023-11-01 14:54:26 25 4
gpt4 key购买 nike

我尝试将本地文件存储在分布式缓存中。该文件存在,但我得到一个文件未找到异常

代码片段:

DistributedCache.addCacheFile(new URI("file://"+fileName), conf);   
RunningJob job = JobClient.runJob(conf);

异常(exception):

Error initializing attempt_201310150245_0066_m_000021_0:
java.io.FileNotFoundException: File /Workflow/data does not exist
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:468)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:380)
at org.apache.hadoop.filecache.TaskDistributedCacheManager.setupCache(TaskDistributedCacheManager.java:180)
at org.apache.hadoop.mapred.TaskTracker$4.run(TaskTracker.java:1454)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
at org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1445)
at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1360)
at org.apache.hadoop.mapred.TaskTracker.startNewTask(TaskTracker.java:2786)

有什么想法吗?

最佳答案

首先要做的是将文件放入 HDFS,同时 hadoop 正在运行。你可以用

hadoop dfs -copyFromLocal <localPath> <HDFSPath>

我认为您不需要“file://”前缀。尝试这样的事情:

DistributedCache.addCacheFile(new URI("/user/hduser/stopwords/stopwords.txt"), conf);

确保此路径存在于 HDFS 中,而不存在于您的本地文件系统中。

例如,您可以运行命令

hdfs dfs -ls /user/hduser/stopwords

确保此路径存在。

更多命令可以在shell commands for hadoop 1.2.1中找到

关于hadoop - 尝试将文件存储在 hadoop 分布式缓存中时出现 FileNotFound 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com