From ba650a8a1057dd5d77cd400cc22e717b478a5721 Mon Sep 17 00:00:00 2001 From: tedyu Date: Thu, 22 Sep 2016 07:34:29 -0700 Subject: [PATCH] HBASE-16675 Average region size may be incorrect when there is region whose RegionLoad cannot be retrieved --- .../hbase/master/normalizer/SimpleRegionNormalizer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java index acf12b4b92d..c18a49a228a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java @@ -124,16 +124,18 @@ public class SimpleRegionNormalizer implements RegionNormalizer { ", number of regions: " + tableRegions.size()); long totalSizeMb = 0; + int acutalRegionCnt = 0; for (int i = 0; i < tableRegions.size(); i++) { HRegionInfo hri = tableRegions.get(i); long regionSize = getRegionSize(hri); if (regionSize > 0) { + acutalRegionCnt++; totalSizeMb += regionSize; } } - double avgRegionSize = totalSizeMb / (double) tableRegions.size(); + double avgRegionSize = acutalRegionCnt == 0 ? 0 : totalSizeMb / (double) acutalRegionCnt; LOG.debug("Table " + table + ", total aggregated regions size: " + totalSizeMb); LOG.debug("Table " + table + ", average region size: " + avgRegionSize);