apache/hadoop · critical · RuntimeException
Configuration file not found at {confFile}
Error message
Configuration file not found at {confFile} What it means
The legacy queue-configuration parser behind mapred-queues.xml throws this RuntimeException when constructed with an explicit file path that does not exist on disk (checked via getAbsoluteFile().exists()). It is a hard startup failure for whatever component builds the parser - legacy JobTracker-style deployments, tools, or tests using the path-based constructor.
Source
Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/QueueConfigurationParser.java:104
static final String STATE_TAG = "state";
static final String QUEUE_NAME_TAG = "name";
static final String QUEUES_TAG = "queues";
static final String PROPERTY_TAG = "property";
static final String KEY_TAG = "key";
static final String VALUE_TAG = "value";
/**
* Default constructor for QueueConfigurationParser.
*/
QueueConfigurationParser() {
}
QueueConfigurationParser(String confFile, boolean areAclsEnabled) {
aclsEnabled = areAclsEnabled;
File file = new File(confFile).getAbsoluteFile();
if (!file.exists()) {
throw new RuntimeException("Configuration file not found at " +
confFile);
}
InputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(file));
loadFrom(in);
} catch (IOException ioe) {
throw new RuntimeException(ioe);
} finally {
IOUtils.closeStream(in);
}
}
QueueConfigurationParser(InputStream xmlInput, boolean areAclsEnabled) {
aclsEnabled = areAclsEnabled;
loadFrom(xmlInput);
}
View on GitHub (pinned to 2add963021)
Solutions
- Create a valid file at the exact path: root <queues> containing at least one <queue><name>...</name></queue>
- Make the configured path absolute, or ensure mapred-queues.xml is on the classpath
- Verify with ls on the host where the component starts; remember relative paths resolve against process CWD
- On YARN/MR2 clusters prefer capacity-scheduler.xml unless you intentionally use the legacy queue manager
Example fix
<!-- before: file missing at /etc/hadoop/mapred-queues.xml -->
<!-- after: /etc/hadoop/mapred-queues.xml -->
<queues>
<queue>
<name>default</name>
</queue>
</queues> Defensive patterns
Strategy: validation
Validate before calling
// fail with a clear message before constructing the parser
File f = new File(confFile).getAbsoluteFile();
if (!f.isFile()) throw new FileNotFoundException("queue config missing: " + f
+ " - create it or fix the configured path");
new QueueConfigurationParser(confFile, areAclsEnabled); Prevention
- Ship mapred-queues.xml with the deployment or drop legacy queue configuration entirely
- Use absolute paths for file-based queue configuration
- Add a startup smoke check that required config files exist before launching services
When it happens
Trigger: QueueConfigurationParser(confFile, areAclsEnabled) is passed a path that resolves to a nonexistent absolute file: file never created, wrong directory, typo in the configured path, or a relative path resolved against an unexpected process working directory.
Common situations: MR1-style config pointing at mapred-queues.xml that was never shipped to the node; deploy scripts referencing a missing conf dir; tests passing a temp path that was already cleaned; CWD changes making a relative path dangle.
Related errors
- No queues defined
- Improper queue name : {nameValue}
- Malformed xml formation queue name not specified
- Couldn't open queue configuration at " + xmlInUrl
- Problem starting http server
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/ede796001e5a14f5.
Report an issue: GitHub.