From 1e0746e7565a2a0fb8b160ac42a4cde9ba94d5b7 Mon Sep 17 00:00:00 2001 From: Arpit Agarwal Date: Fri, 6 Nov 2015 18:58:49 -0800 Subject: [PATCH] HDFS-9379. Make NNThroughputBenchmark support more than 10 datanodes. (Contributed by Mingliang Liu) --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../hadoop/hdfs/server/namenode/NNThroughputBenchmark.java | 6 +----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 4539cd31dde..17dc78add97 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -785,6 +785,9 @@ Release 2.8.0 - UNRELEASED HDFS-9236. Missing sanity check for block size during block recovery. (Tony Wu via Yongjun Zhang) + HDFS-9379. Make NNThroughputBenchmark$BlockReportStats support more than 10 + datanodes. (Mingliang Liu via Arpit Agarwal) + OPTIMIZATIONS HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/NNThroughputBenchmark.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/NNThroughputBenchmark.java index b963d8f155d..6d2731563c2 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/NNThroughputBenchmark.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/NNThroughputBenchmark.java @@ -1145,14 +1145,10 @@ void generateInputs(int[] ignore) throws IOException { int nrFiles = (int)Math.ceil((double)nrBlocks / blocksPerFile); datanodes = new TinyDatanode[nrDatanodes]; // create data-nodes - String prevDNName = ""; for(int idx=0; idx < nrDatanodes; idx++) { datanodes[idx] = new TinyDatanode(idx, blocksPerReport); datanodes[idx].register(); - assert datanodes[idx].getXferAddr().compareTo(prevDNName) > 0 - : "Data-nodes must be sorted lexicographically."; datanodes[idx].sendHeartbeat(); - prevDNName = datanodes[idx].getXferAddr(); } // create files @@ -1184,7 +1180,7 @@ private ExtendedBlock addBlocks(String fileName, String clientName) prevBlock, null, HdfsConstants.GRANDFATHER_INODE_ID, null); prevBlock = loc.getBlock(); for(DatanodeInfo dnInfo : loc.getLocations()) { - int dnIdx = Arrays.binarySearch(datanodes, dnInfo.getXferAddr()); + int dnIdx = dnInfo.getXferPort() - 1; datanodes[dnIdx].addBlock(loc.getBlock().getLocalBlock()); ReceivedDeletedBlockInfo[] rdBlocks = { new ReceivedDeletedBlockInfo( loc.getBlock().getLocalBlock(),