hadoop mapfile reader在分布式缓存中检测不到文件

ubby3x7f  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(307)

我需要关于Map文件阅读器的帮助。
我将文件添加到“按文件缓存”选项中
yarn jar hadoopprojects.jar rsproject.driver-文件hdfs://localhost:8020/data/mapfiletestfolder.tar.gz。。。。
我叫它这儿

@SuppressWarnings("deprecation")
@Override
protected void setup(Context context) {
    try {
        Path[] cacheLocalFiles = DistributedCache.getLocalCacheFiles(context.getConfiguration());
        logF.info("reducer started setup");

            for (Path path:cacheLocalFiles) {
                logF("reducer setup " + path.getName().toString());
                if (path.getName().toString().contains("mapFileTestFolder.tar.gz")) {
                    URI mapUri = new File(path.toString() + "/mapFileTestFolder").toURI();
                    logF.info("depReader init begins URI = " + mapUri.toString());
                    depReader = new MapFile.Reader(FileSystem.get(context.getConfiguration()),mapUri.toString(), context.getConfiguration());
                    logF.info("depReader init ends");

                }
            }
        } catch (IOException e) {
            e.printStackTrace();
            logF.info("depReader init error - " + e);
        } 
        //some other lines

}
这是我在日志里看到的
2014-03-11 08:31:09305 info[main]rsproject.myreducer:depreader init begins uri=file:/home/hadoop/training/hadoop\u work/mapred/nodemanager/usercache/hadoop/appcache/application\u 1394318775013\u 0079/container\u 1394318775013\u 0079\u 01\u000005/mapfiletestfolder.tar.gz/mapfiletestfolder
2014-03-11 08:31:09345信息[main]rsproject.myreducer:depreader init error-java.io.filenotfoundexception:文件文件:/home/hadoop/training/hadoop\u work/mapred/nodemanager/usercache/hadoop/appcache/application\u 1394318775013\u 0079/container\u 1394318775013\u 0079\u 01\u000005/mapfiletestfolder.tar.gz/mapfiletestfolder/data不存在
mapfiletestfolder.tar.gz-这是一个压缩的Map文件(包含索引和数据)
我猜这个文件存在于分布式缓存中,因为运行程序在相同的匹配条件下进入状态。
为什么会这样=/
感谢您的帮助
谢谢

hiz5n14c

hiz5n14c1#

问题解决了。我愚蠢的错误=/我应该使用命令将存档添加到分布式缓存,而不是作为文件。

相关问题