From 5cf62d149878c595c6e2edea7d9079f05aa9882a Mon Sep 17 00:00:00 2001 From: Kidd5368 <57645247+Kidd53685368@users.noreply.github.com> Date: Thu, 23 Mar 2023 17:00:23 +0800 Subject: [PATCH] HDFS-16948. Update log of BlockManager#chooseExcessRedundancyStriped when EC internal block is moved by balancer. (#5474). Contributed by Kidd53685368. Reviewed-by: zhangshuyan Signed-off-by: He Xiaoqiao --- .../hadoop/hdfs/server/blockmanagement/BlockManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java index 4e5e1234716..e5a6cf73b69 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java @@ -4128,6 +4128,7 @@ private void chooseExcessRedundancyStriped(BlockCollection bc, BitSet found = new BitSet(groupSize); //indices found BitSet duplicated = new BitSet(groupSize); //indices found more than once HashMap storage2index = new HashMap<>(); + boolean logEmptyExcessType = true; for (DatanodeStorageInfo storage : nonExcess) { int index = sblk.getStorageBlockIndex(storage); assert index >= 0; @@ -4145,6 +4146,7 @@ private void chooseExcessRedundancyStriped(BlockCollection bc, Integer index = storage2index.get(delStorageHint); if (index != null && duplicated.get(index)) { processChosenExcessRedundancy(nonExcess, delStorageHint, storedBlock); + logEmptyExcessType = false; } } @@ -4155,8 +4157,10 @@ private void chooseExcessRedundancyStriped(BlockCollection bc, final List excessTypes = storagePolicy.chooseExcess( (short) numOfTarget, DatanodeStorageInfo.toStorageTypes(nonExcess)); if (excessTypes.isEmpty()) { - LOG.warn("excess types chosen for block {} among storages {} is empty", - storedBlock, nonExcess); + if(logEmptyExcessType) { + LOG.warn("excess types chosen for block {} among storages {} is empty", + storedBlock, nonExcess); + } return; }