@Override public void eliminateTabletServers(ClientContext ctx, TabletLocations locs, int count) throws Exception { List<ProcessReference> procs = new ArrayList<>( getCluster().getProcesses().get(ServerType.TABLET_SERVER)); Collections.shuffle(procs); for (int i = 0; i < count; ++i) { ProcessReference pr = procs.get(i); log.info("Crashing {}", pr.getProcess()); getCluster().killProcess(ServerType.TABLET_SERVER, pr); } } });
private void restartTServer() throws Exception { for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc); } cluster.start(); }
private void restartTServer() throws Exception { for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc); } cluster.start(); }
private void restartTServer() throws Exception { for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc); } cluster.start(); }
for (int i = 0; i < 10; ++i) { List<ProcessReference> deadProcs = new ArrayList<>(); for (ProcessReference pr : getCluster().getProcesses().get(ServerType.TABLET_SERVER)) { Process p = pr.getProcess(); if (!isAlive(p)) {
Connector c = this.getConnector(); c.tableOperations().create("test"); Collection<ProcessReference> tservers = getCluster().getProcesses() .get(ServerType.TABLET_SERVER); ArrayList<Integer> tserverPids = new ArrayList<>(tservers.size());
private void killMacGc() throws ProcessNotFoundException, InterruptedException, KeeperException { // kill gc started by MAC getCluster().killProcess(ServerType.GARBAGE_COLLECTOR, getCluster().getProcesses().get(ServerType.GARBAGE_COLLECTOR).iterator().next()); // delete lock in zookeeper if there, this will allow next GC to start quickly String path = ZooUtil.getRoot(new ZooKeeperInstance(getCluster().getClientConfig())) + Constants.ZGC_LOCK; ZooReaderWriter zk = new ZooReaderWriter(cluster.getZooKeepers(), 30000, OUR_SECRET); try { ZooLock.deleteLock(zk, path); } catch (IllegalStateException e) { } assertNull(getCluster().getProcesses().get(ServerType.GARBAGE_COLLECTOR)); }
log.info("Killing a tablet server"); getCluster().killProcess(TABLET_SERVER, getCluster().getProcesses().get(TABLET_SERVER).iterator().next());
cluster.getProcesses().get(ServerType.TABLET_SERVER).iterator().next()); sleepUninterruptibly(1, TimeUnit.SECONDS); c.tableOperations().create("test_ingest");
@Test public void test() throws Exception { Connector c = getConnector(); c.tableOperations().create("test_ingest"); BatchWriter bw = c.createBatchWriter("test_ingest", null); Mutation m = new Mutation("row"); m.put("cf", "cq", "value"); bw.addMutation(m); bw.close(); // kill zookeeper for (ProcessReference proc : cluster.getProcesses().get(ServerType.ZOOKEEPER)) cluster.killProcess(ServerType.ZOOKEEPER, proc); // give the servers time to react sleepUninterruptibly(1, TimeUnit.SECONDS); // start zookeeper back up cluster.start(); // use the tservers Scanner s = c.createScanner("test_ingest", Authorizations.EMPTY); Iterator<Entry<Key,Value>> i = s.iterator(); assertTrue(i.hasNext()); assertEquals("row", i.next().getKey().getRow().toString()); assertFalse(i.hasNext()); // use the master c.tableOperations().delete("test_ingest"); }
for (ProcessReference ref : getCluster().getProcesses().get(ServerType.TABLET_SERVER)) getCluster().killProcess(ServerType.TABLET_SERVER, ref); final Process ts = cluster.exec(TabletServer.class);
for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc);
cluster.getProcesses().get(ServerType.TABLET_SERVER).iterator().next()); Set<TServerInstance> replStates = new HashSet<>();
.referencedFiles(masterTable); for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc);
conn.tableOperations().flush(RootTable.NAME, null, null, true); Set<Entry<ServerType,Collection<ProcessReference>>> procs = getCluster().getProcesses() .entrySet(); for (Entry<ServerType,Collection<ProcessReference>> entry : procs) {
@Test public void dontGCRootLog() throws Exception { killMacGc(); // dirty metadata Connector c = getConnector(); String table = getUniqueNames(1)[0]; c.tableOperations().create(table); // let gc run for a bit cluster.start(); sleepUninterruptibly(20, TimeUnit.SECONDS); killMacGc(); // kill tservers for (ProcessReference ref : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, ref); } // run recovery cluster.start(); // did it recover? Scanner scanner = c.createScanner(MetadataTable.NAME, Authorizations.EMPTY); Iterators.size(scanner.iterator()); }
for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc);
for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc);
for (ProcessReference proc : primary.getProcesses().get(ServerType.TABLET_SERVER)) { primary.killProcess(ServerType.TABLET_SERVER, proc);
for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) { cluster.killProcess(ServerType.TABLET_SERVER, proc);