@Override public Boolean call() throws Exception { c.instanceOperations().waitForBalance(); return true; } });
@Test public void testBalance() throws Exception { String tableName = getUniqueNames(1)[0]; Connector c = getConnector(); log.info("Creating table"); c.tableOperations().create(tableName); SortedSet<Text> splits = new TreeSet<>(); for (int i = 0; i < 10; i++) { splits.add(new Text("" + i)); } log.info("Adding splits"); c.tableOperations().addSplits(tableName, splits); log.info("Waiting for balance"); c.instanceOperations().waitForBalance(); } }
private long ingest() throws Exception { final Connector c = getConnector(); final String tableName = getUniqueNames(1)[0]; log.info("Creating the table"); c.tableOperations().create(tableName); log.info("Splitting the table"); final long SPLIT_COUNT = 100; final long distance = Long.MAX_VALUE / SPLIT_COUNT; final SortedSet<Text> splits = new TreeSet<>(); for (int i = 1; i < SPLIT_COUNT; i++) { splits.add(new Text(String.format("%016x", i * distance))); } c.tableOperations().addSplits(tableName, splits); log.info("Waiting for balance"); c.instanceOperations().waitForBalance(); final Instance inst = c.getInstance(); log.info("Starting ingest"); final long start = System.currentTimeMillis(); final String args[] = {"-i", inst.getInstanceName(), "-z", inst.getZooKeepers(), "-u", "root", "-p", ROOT_PASSWORD, "--batchThreads", "2", "--table", tableName, "--num", Long.toString(50 * 1000), // 50K 100 byte entries }; ContinuousIngest.main(args); final long result = System.currentTimeMillis() - start; log.debug(String.format("Finished in %,d ms", result)); log.debug("Dropping table"); c.tableOperations().delete(tableName); return result; }
c.tableOperations().addSplits(tableName, splits); log.info("Balancing"); c.instanceOperations().waitForBalance(); log.info("Balanced");
c.instanceOperations().waitForBalance();
@Test public void test() throws Exception { final Connector c = getConnector(); // ensure the metadata table is online Iterators.size(c.createScanner(MetadataTable.NAME, Authorizations.EMPTY).iterator()); c.instanceOperations().waitForBalance(); assertTrue(isBalanced()); final String tableName = getUniqueNames(1)[0]; c.tableOperations().create(tableName); c.instanceOperations().waitForBalance(); final SortedSet<Text> partitionKeys = new TreeSet<>(); for (int i = 0; i < 1000; i++) { partitionKeys.add(new Text("" + i)); } c.tableOperations().addSplits(tableName, partitionKeys); assertFalse(isBalanced()); c.instanceOperations().waitForBalance(); assertTrue(isBalanced()); }
new TreeSet<>(Collections.singleton(new Text(Integer.toString(x * NUM_TO_FLUSH))))); c.instanceOperations().waitForBalance();
conn.instanceOperations().waitForBalance(); do {
c.instanceOperations().waitForBalance(); log.info("Restarting"); getCluster().getClusterControl().kill(ServerType.TABLET_SERVER, "localhost");