public java.lang.Object getFieldValue(_Fields field) { switch (field) { case TABLE_MAP: return getTableMap(); case T_SERVER_INFO: return getTServerInfo(); case BAD_TSERVERS: return getBadTServers(); case STATE: return getState(); case GOAL_STATE: return getGoalState(); case UNASSIGNED_TABLETS: return getUnassignedTablets(); case SERVERS_SHUTTING_DOWN: return getServersShuttingDown(); case DEAD_TABLET_SERVERS: return getDeadTabletServers(); case BULK_IMPORTS: return getBulkImports(); } throw new java.lang.IllegalStateException(); }
@Override public void read(org.apache.thrift.protocol.TProtocol prot, getMasterStats_result struct) throws org.apache.thrift.TException { org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot; java.util.BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { struct.success = new MasterMonitorInfo(); struct.success.read(iprot); struct.setSuccessIsSet(true); } if (incoming.get(1)) { struct.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException(); struct.sec.read(iprot); struct.setSecIsSet(true); } if (incoming.get(2)) { struct.tnase = new org.apache.accumulo.core.clientImpl.thrift.ThriftNotActiveServiceException(); struct.tnase.read(iprot); struct.setTnaseIsSet(true); } } }
int tServerUp = Monitor.getMmi().getTServerInfoSize(); int tServerDown = Monitor.getMmi().getDeadTabletServersSize(); int tServerBad = Monitor.getMmi().getBadTServersSize();
/** * Generates a new JSON object with scan information * * @return Scan JSON object */ @GET public Scans getTables() { Scans scans = new Scans(); Map<HostAndPort,ScanStats> entry = Monitor.getScans(); // Adds new scans to the array for (TabletServerStatus tserverInfo : Monitor.getMmi().getTServerInfo()) { ScanStats stats = entry.get(HostAndPort.fromString(tserverInfo.name)); if (stats != null) { scans.addScan(new ScanInformation(tserverInfo, stats.scanCount, stats.oldestScan)); } } return scans; } }
if (stats.getTServerInfoSize() < 2) { log.debug("we need >= 2 servers. sleeping for " + currentWait + "ms"); continue; if (stats.getUnassignedTablets() != 0) { log.debug("We shouldn't have unassigned tablets. sleeping for " + currentWait + "ms"); continue; long[] tabletsPerServer = new long[stats.getTServerInfoSize()]; Arrays.fill(tabletsPerServer, 0l); for (int i = 0; i < stats.getTServerInfoSize(); i++) { for (Map.Entry<String,TableInfo> entry : stats.getTServerInfo().get(i).getTableMap() .entrySet()) { tabletsPerServer[i] += entry.getValue().getTablets();
public MasterMonitorInfo deepCopy() { return new MasterMonitorInfo(this); }
public int getMaxReplicationThreads(MasterMonitorInfo mmi) { int activeTservers = mmi.getTServerInfoSize(); // The number of threads each tserver will use at most to replicate data int replicationThreadsPerServer = Integer .parseInt(context.getConfiguration().get(Property.REPLICATION_WORKER_THREADS)); // The total number of "slots" we have to replicate data return activeTservers * replicationThreadsPerServer; }
MasterClient.close(client); unassignedTablets = stats.getUnassignedTablets(); if (unassignedTablets > 0) { log.info("Found " + unassignedTablets
/** * Generates bad tserver lists as a JSON object * * @return bad tserver list */ public static BadTabletServers getNumBadTservers() { MasterMonitorInfo mmi = getMmi(); if (mmi == null) { return new BadTabletServers(); } Map<String,Byte> badServers = mmi.getBadTServers(); if (badServers == null || badServers.isEmpty()) { return new BadTabletServers(); } BadTabletServers readableBadServers = new BadTabletServers(); // Add new bad tservers to the list for (Entry<String,Byte> badServer : badServers.entrySet()) { try { TabletServerState state = TabletServerState.getStateById(badServer.getValue()); readableBadServers .addBadServer(new BadTabletServerInformation(badServer.getKey(), state.name())); } catch (IndexOutOfBoundsException e) { readableBadServers .addBadServer(new BadTabletServerInformation(badServer.getKey(), "Unknown state")); } } return readableBadServers; }
private int getMajorCompactionCount() { int majC = 0; ZooKeeperInstance instance = new ZooKeeperInstance(ClientConfiguration.loadDefault().withInstance(instanceName).withZkHosts(zooKeepers)); Iface client = null; try { client = MasterClient.getConnection(new ClientContext(instance, credentials, AccumuloConfiguration.getDefaultConfiguration())); MasterMonitorInfo mmi = client.getMasterStats(null, credentials.toThrift(instance)); Map<String,TableInfo> tableStats = mmi.getTableMap(); for (java.util.Map.Entry<String,TableInfo> e : tableStats.entrySet()) { majC += e.getValue().getMajors().getQueued(); majC += e.getValue().getMajors().getRunning(); } } catch (Exception e) { // Accumulo API changed, catch exception for now until we redeploy // accumulo on lightning. log.error("Unable to retrieve major compaction stats: " + e.getMessage()); } finally { if (client != null) { MasterClient.close(client); } } return majC; }
for (TabletServerStatus tserverInfo : Monitor.getMmi().getTServerInfo()) { int size = 0; long oldest = 0L;
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; }
public int getMaxReplicationThreads(MasterMonitorInfo mmi) { int activeTservers = mmi.getTServerInfoSize(); // The number of threads each tserver will use at most to replicate data int replicationThreadsPerServer = Integer .parseInt(context.getConfiguration().get(Property.REPLICATION_WORKER_THREADS)); // The total number of "slots" we have to replicate data return activeTservers * replicationThreadsPerServer; }
MasterClient.close(client); unassignedTablets = stats.getUnassignedTablets(); if (unassignedTablets > 0) { log.info("Found " + unassignedTablets
public Object getFieldValue(_Fields field) { switch (field) { case TABLE_MAP: return getTableMap(); case T_SERVER_INFO: return getTServerInfo(); case BAD_TSERVERS: return getBadTServers(); case STATE: return getState(); case GOAL_STATE: return getGoalState(); case UNASSIGNED_TABLETS: return getUnassignedTablets(); case SERVERS_SHUTTING_DOWN: return getServersShuttingDown(); case DEAD_TABLET_SERVERS: return getDeadTabletServers(); case BULK_IMPORTS: return getBulkImports(); } throw new IllegalStateException(); }
for (TabletServerStatus ts : Monitor.getMmi().getTServerInfo()) { if (tserverAddress.equals(ts.getName())) { tserverExists = true;
case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { struct.success = new MasterMonitorInfo(); struct.success.read(iprot); struct.setSuccessIsSet(true); } else {
/** * Performs a deep copy on <i>other</i>. */ public getMasterStats_result(getMasterStats_result other) { if (other.isSetSuccess()) { this.success = new MasterMonitorInfo(other.success); } if (other.isSetSec()) { this.sec = new org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException(other.sec); } if (other.isSetTnase()) { this.tnase = new org.apache.accumulo.core.clientImpl.thrift.ThriftNotActiveServiceException(other.tnase); } }
private ArrayList<TabletServerStatus> getTabletServers() throws TException { ArrayList<TabletServerStatus> list = new ArrayList<>();// list of TServer info MasterClientService.Client client=null; // MasterClientService.Iface client=null; try { client = this.connection.getMasterClient(); //changed in accumulo-1.4 // mmi = client.getMasterStats(null, getAuthInfo()); TInfo tinfo = new TInfo(); MasterMonitorInfo mmi = client.getMasterStats(tinfo,this.connection.getCredentials() ); list.addAll(mmi.getTServerInfo()); } catch(D4mException e) { log.warn(e); } finally { ThriftUtil.returnClient(client); } return list; } private List<TabletStats> getTabletStatsList(List<TabletServerStatus> tserverNames, List<String> tableNames) throws D4mException {
@Override public void read(org.apache.thrift.protocol.TProtocol prot, getMasterStats_result struct) throws org.apache.thrift.TException { TTupleProtocol iprot = (TTupleProtocol) prot; BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { struct.success = new MasterMonitorInfo(); struct.success.read(iprot); struct.setSuccessIsSet(true); } if (incoming.get(1)) { struct.sec = new org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException(); struct.sec.read(iprot); struct.setSecIsSet(true); } } }