apache/hadoop · error · IOException
Destination {dest} should be a directory but is a file
Error message
Destination {dest} should be a directory but is a file What it means
Error "Destination {dest} should be a directory but is a file" thrown in apache/hadoop.
Source
Thrown at hadoop-tools/hadoop-archives/src/main/java/org/apache/hadoop/tools/HadoopArchives.java:487
int numFiles = 0;
long totalSize = 0;
FileSystem fs = parentPath.getFileSystem(conf);
this.blockSize = conf.getLong(HAR_BLOCKSIZE_LABEL, blockSize);
this.partSize = conf.getLong(HAR_PARTSIZE_LABEL, partSize);
conf.setLong(HAR_BLOCKSIZE_LABEL, blockSize);
conf.setLong(HAR_PARTSIZE_LABEL, partSize);
conf.set(DST_HAR_LABEL, archiveName);
conf.set(SRC_PARENT_LABEL, fs.makeQualified(parentPath).toString());
conf.setInt(HAR_REPLICATION_LABEL, repl);
Path outputPath = new Path(dest, archiveName);
FileOutputFormat.setOutputPath(conf, outputPath);
FileSystem outFs = outputPath.getFileSystem(conf);
if (outFs.exists(outputPath)) {
throw new IOException("Archive path: "
+ outputPath.toString() + " already exists");
}
if (outFs.isFile(dest)) {
throw new IOException("Destination " + dest.toString()
+ " should be a directory but is a file");
}
conf.set(DST_DIR_LABEL, outputPath.toString());
Credentials credentials = conf.getCredentials();
Path[] allPaths = new Path[] {parentPath, dest};
TokenCache.obtainTokensForNamenodes(credentials, allPaths, conf);
conf.setCredentials(credentials);
Path stagingArea;
try {
stagingArea = JobSubmissionFiles.getStagingDir(new Cluster(conf),
conf);
} catch (InterruptedException ie) {
throw new IOException(ie);
}
Path jobDirectory = new Path(stagingArea,
NAME+"_"+Integer.toString(new Random().nextInt(Integer.MAX_VALUE), 36));
FsPermission mapredSysPerms = View on GitHub (pinned to 2add963021)
Solutions
- Choose a destination path that is a directory or does not exist; the destination currently exists as a file.
When it happens
Trigger: Thrown at hadoop-tools/hadoop-archives/src/main/java/org/apache/hadoop/tools/HadoopArchives.java:487 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/dc36556429d4afb8.
Report an issue: GitHub.