public TServerInstance(HostAndPort address, String session) { this.location = address; this.session = session; this.cachedStringRepresentation = hostPort() + "[" + session + "]"; }
private static void cleanListByHostAndPort(Collection<TServerInstance> badServers, Set<TServerInstance> deleted, Set<TServerInstance> added) { Iterator<TServerInstance> badIter = badServers.iterator(); while (badIter.hasNext()) { TServerInstance bad = badIter.next(); for (TServerInstance add : added) { if (bad.hostPort().equals(add.hostPort())) { badIter.remove(); break; } } for (TServerInstance del : deleted) { if (bad.hostPort().equals(del.hostPort())) { badIter.remove(); break; } } } }
public TServerInstance(String formattedString) { int pos = formattedString.indexOf("["); if (pos < 0 || !formattedString.endsWith("]")) { throw new IllegalArgumentException(formattedString); } this.location = HostAndPort.fromString(formattedString.substring(0, pos)); this.session = formattedString.substring(pos + 1, formattedString.length() - 1); this.cachedStringRepresentation = hostPort() + "[" + session + "]"; }
@Override public void reportSplitExtent(TInfo info, TCredentials credentials, String serverName, TabletSplit split) { KeyExtent oldTablet = new KeyExtent(split.oldTablet); if (master.migrations.remove(oldTablet) != null) { Master.log.info("Canceled migration of {}", split.oldTablet); } for (TServerInstance instance : master.tserverSet.getCurrentServers()) { if (serverName.equals(instance.hostPort())) { master.nextEvent.event("%s reported split %s, %s", serverName, new KeyExtent(split.newTablets.get(0)), new KeyExtent(split.newTablets.get(1))); return; } } Master.log.warn("Got a split from a server we don't recognize: {}", serverName); }
public MasterMonitorInfo getMasterMonitorInfo() { final MasterMonitorInfo result = new MasterMonitorInfo(); result.tServerInfo = new ArrayList<>(); result.tableMap = new DefaultMap<>(new TableInfo()); for (Entry<TServerInstance,TabletServerStatus> serverEntry : tserverStatus.entrySet()) { final TabletServerStatus status = serverEntry.getValue(); result.tServerInfo.add(status); for (Entry<String,TableInfo> entry : status.tableMap.entrySet()) { TableInfoUtil.add(result.tableMap.get(entry.getKey()), entry.getValue()); } } result.badTServers = new HashMap<>(); synchronized (badServers) { for (TServerInstance bad : badServers.keySet()) { result.badTServers.put(bad.hostPort(), TabletServerState.UNRESPONSIVE.getId()); } } result.state = getMasterState(); result.goalState = getMasterGoalState(); result.unassignedTablets = displayUnassigned(); result.serversShuttingDown = new HashSet<>(); synchronized (serversToShutdown) { for (TServerInstance server : serversToShutdown) result.serversShuttingDown.add(server.hostPort()); } DeadServerList obit = new DeadServerList(context, getZooKeeperRoot() + Constants.ZDEADTSERVERS); result.deadTabletServers = obit.getList(); result.bulkImports = bulkImportStatus.getBulkLoadStatus(); return result; }
try { replServiceAddr = new String(reader.getData( master.getZooKeeperRoot() + ReplicationConstants.ZOO_TSERVERS + "/" + tserver.hostPort(), null), UTF_8); } catch (KeeperException | InterruptedException e) { throw new ReplicationCoordinatorException( ReplicationCoordinatorErrorCode.SERVICE_CONFIGURATION_UNAVAILABLE, "Could not determine port for replication service running at " + tserver.hostPort());
if (state.current != null) { try { locs.add(state.current.hostPort()); } catch (Exception ex) { scanner.close();
public TServerInstance(HostAndPort address, String session) { this.location = address; this.session = session; this.cachedStringRepresentation = hostPort() + "[" + session + "]"; }
public TServerInstance(InetSocketAddress address, String session) { this.location = address; this.session = session; this.cachedStringRepresentation = hostPort() + "[" + session + "]"; }
if (logs != null) { for (Path log : logs) { LogEntry entry = new LogEntry(tls.extent, 0, tls.current.hostPort(), log.toString()); m.put(entry.getColumnFamily(), entry.getColumnQualifier(), entry.getValue());
private static void cleanListByHostAndPort(Collection<TServerInstance> badServers, Set<TServerInstance> deleted, Set<TServerInstance> added) { Iterator<TServerInstance> badIter = badServers.iterator(); while (badIter.hasNext()) { TServerInstance bad = badIter.next(); for (TServerInstance add : added) { if (bad.hostPort().equals(add.hostPort())) { badIter.remove(); break; } } for (TServerInstance del : deleted) { if (bad.hostPort().equals(del.hostPort())) { badIter.remove(); break; } } } }
private static void cleanListByHostAndPort(Collection<TServerInstance> badServers, Set<TServerInstance> deleted, Set<TServerInstance> added) { Iterator<TServerInstance> badIter = badServers.iterator(); while (badIter.hasNext()) { TServerInstance bad = badIter.next(); for (TServerInstance add : added) { if (bad.hostPort().equals(add.hostPort())) { badIter.remove(); break; } } for (TServerInstance del : deleted) { if (bad.hostPort().equals(del.hostPort())) { badIter.remove(); break; } } } }
public TServerInstance(String formattedString) { int pos = formattedString.indexOf("["); if (pos < 0 || !formattedString.endsWith("]")) { throw new IllegalArgumentException(formattedString); } this.location = HostAndPort.fromString(formattedString.substring(0, pos)); this.session = formattedString.substring(pos + 1, formattedString.length() - 1); this.cachedStringRepresentation = hostPort() + "[" + session + "]"; }
public synchronized TServerConnection getConnection(TServerInstance server) throws TException { if (server == null) return null; TServerInfo serverInfo = current.get(server.hostPort()); // lock was lost? if (serverInfo == null) return null; // instance changed? if (!serverInfo.instance.equals(server)) return null; TServerConnection result = serverInfo.connection; return result; }
@Override public void visit(State state, Environment env, Properties props) throws Exception { Instance instance = env.getInstance(); List<TServerInstance> currentServers = new ArrayList<>(getTServers(instance)); Collections.shuffle(currentServers); Runtime runtime = Runtime.getRuntime(); if (currentServers.size() > 1) { TServerInstance victim = currentServers.get(0); log.info("Stopping " + victim.hostPort()); Process exec = runtime.exec(new String[] {System.getenv("ACCUMULO_HOME") + "/bin/accumulo", "admin", "stop", victim.hostPort()}); if (exec.waitFor() != 0) throw new RuntimeException("admin stop returned a non-zero response: " + exec.exitValue()); Set<TServerInstance> set = getTServers(instance); if (set.contains(victim)) throw new RuntimeException("Failed to stop " + victim); } }
@Override public void reportSplitExtent(TInfo info, TCredentials credentials, String serverName, TabletSplit split) { KeyExtent oldTablet = new KeyExtent(split.oldTablet); if (master.migrations.remove(oldTablet) != null) { Master.log.info("Canceled migration of " + split.oldTablet); } for (TServerInstance instance : master.tserverSet.getCurrentServers()) { if (serverName.equals(instance.hostPort())) { master.nextEvent.event("%s reported split %s, %s", serverName, new KeyExtent(split.newTablets.get(0)), new KeyExtent(split.newTablets.get(1))); return; } } Master.log.warn("Got a split from a server we don't recognize: " + serverName); }
@Override public void reportSplitExtent(TInfo info, TCredentials credentials, String serverName, TabletSplit split) throws TException { KeyExtent oldTablet = new KeyExtent(split.oldTablet); if (migrations.remove(oldTablet) != null) { log.info("Canceled migration of " + split.oldTablet); } for (TServerInstance instance : tserverSet.getCurrentServers()) { if (serverName.equals(instance.hostPort())) { nextEvent.event("%s reported split %s, %s", serverName, new KeyExtent(split.newTablets.get(0)), new KeyExtent(split.newTablets.get(1))); return; } } log.warn("Got a split from a server we don't recognize: " + serverName); }
public synchronized void remove(TServerInstance server) { current.remove(server.hostPort()); log.info("Removing zookeeper lock for " + server); String zpath = ZooUtil.getRoot(instance) + Constants.ZTSERVERS + "/" + server.hostPort(); try { ZooReaderWriter.getRetryingInstance().recursiveDelete(zpath, SKIP); } catch (Exception e) { String msg = "error removing tablet server lock"; log.fatal(msg, e); Halt.halt(msg, -1); } getZooCache().clear(zpath); } }