void generateInputs(int[] ignore) throws IOException { int nrDatanodes = getNumDatanodes(); int nrBlocks = (int) Math.ceil((double) blocksPerReport * nrDatanodes / replication); 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].getName().compareTo(prevDNName) > 0 : "Data-nodes must be sorted lexicographically."; datanodes[idx].sendHeartbeat(); prevDNName = datanodes[idx].getName(); } // create files LOG.info("Creating " + nrFiles + " with " + blocksPerFile + " blocks each."); FileNameGenerator nameGenerator; nameGenerator = new FileNameGenerator(getBaseDir(), 100); String clientName = getClientName(007); nameNode.setSafeMode(FSConstants.SafeModeAction.SAFEMODE_LEAVE); for (int idx = 0; idx < nrFiles; idx++) { String fileName = nameGenerator.getNextFileName("ThroughputBench"); nameNode.create( fileName, FsPermission.getDefault(), clientName, true, replication, BLOCK_SIZE); addBlocks(fileName, clientName); nameNode.complete(fileName, clientName); } // prepare block reports for (int idx = 0; idx < nrDatanodes; idx++) { datanodes[idx].formBlockReport(); } }
void printResults() { LOG.info("--- " + getOpName() + " inputs ---"); LOG.info("nrFiles = " + numOpsRequired); LOG.info("nrThreads = " + numThreads); LOG.info("nrFilesPerDir = " + nameGenerator.getFilesPerDirectory()); printStats(); }
void generateInputs(int[] opsPerThread) throws IOException { assert opsPerThread.length == numThreads : "Error opsPerThread.length"; nameNode.setSafeMode(FSConstants.SafeModeAction.SAFEMODE_LEAVE); // int generatedFileIdx = 0; LOG.info("Generate " + numOpsRequired + " intputs for " + getOpName()); fileNames = new String[numThreads][]; for (int idx = 0; idx < numThreads; idx++) { int threadOps = opsPerThread[idx]; fileNames[idx] = new String[threadOps]; for (int jdx = 0; jdx < threadOps; jdx++) fileNames[idx][jdx] = nameGenerator.getNextFileName("ThroughputBench"); } }