apache/hadoop · error · IOException
Failed to find datanode, suggest to check cluster health. ex
Error message
Failed to find datanode, suggest to check cluster health. excludeDatanodes={} What it means
Error "Failed to find datanode, suggest to check cluster health. excludeDatanodes={}" thrown in apache/hadoop.
Source
Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/web/resources/NamenodeWebHdfsMethods.java:429
final UserParam username, final DoAsParam doAsUser,
final String path, final HttpOpParam.Op op, final long openOffset,
final long blocksize, final String excludeDatanodes,
final Param<?, ?>... parameters) throws URISyntaxException, IOException {
if (!DFSUtil.isValidName(path)) {
throw new InvalidPathException(path);
}
final DatanodeInfo dn;
final NamenodeProtocols np = getRPCServer(namenode);
HdfsFileStatus status = null;
if (op == GetOpParam.Op.OPEN
|| op == GetOpParam.Op.GETFILECHECKSUM
|| op == PostOpParam.Op.APPEND) {
status = np.getFileInfo(path);
}
dn = chooseDatanode(namenode, path, op, openOffset, blocksize,
excludeDatanodes, remoteAddr, status);
if (dn == null) {
throw new IOException("Failed to find datanode, suggest to check cluster"
+ " health. excludeDatanodes=" + excludeDatanodes);
}
final String delegationQuery;
if (!UserGroupInformation.isSecurityEnabled()) {
//security disabled
delegationQuery = Param.toSortedString("&", doAsUser, username);
} else if (delegation.getValue() != null) {
//client has provided a token
delegationQuery = "&" + delegation;
} else {
//generate a token
final Token<? extends TokenIdentifier> t = generateDelegationToken(
ugi, null);
delegationQuery = "&" + new DelegationParam(t.encodeToUrlString());
}
StringBuilder queryBuilder = new StringBuilder();View on GitHub (pinned to 2add963021)
Solutions
- Check cluster health with 'hdfs dfsadmin -report' and bring failed DataNodes back online.
- Review the excludeDatanodes list in the request and drop entries that are down or decommissioned so a valid DataNode can be chosen.
When it happens
Trigger: Thrown during WebHDFS block location lookup when no usable DataNode remains for the file after filtering excluded nodes, indicating dead DataNodes or an unhealthy cluster.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/b5c485425d797e63.
Report an issue: GitHub.