diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java index 60a2a8676adab..6cdab55fca897 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java @@ -1058,8 +1058,10 @@ private double getInServiceXceiverAverageByStorageType( int numXceiver = 0; for (StorageType s : storageTypes) { StorageTypeStats storageTypeStats = storageStats.get(s); - numNodes += storageTypeStats.getNodesInService(); - numXceiver += storageTypeStats.getNodesInServiceXceiverCount(); + if (storageTypeStats != null) { + numNodes += storageTypeStats.getNodesInService(); + numXceiver += storageTypeStats.getNodesInServiceXceiverCount(); + } } if (numNodes != 0) { avgLoad = (double) numXceiver / numNodes;