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; }
/** * 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; }
sb.append(String.format("<badTabletServer id='%s' status='%s'/>\n", entry.getKey(), TabletServerState.getStateById(entry.getValue())));
for (Entry<String,Byte> entry : Monitor.getMmi().badTServers.entrySet()) { sb.append(String.format("<badTabletServer id='%s' status='%s'/>\n", entry.getKey(), TabletServerState.getStateById(entry.getValue())));
private void doBadTserverList(HttpServletRequest req, StringBuilder sb) { if (Monitor.getMmi() != null && !Monitor.getMmi().badTServers.isEmpty()) { Table badTServerList = new Table("badtservers", "Non-Functioning Tablet Servers", "error"); badTServerList.setSubCaption("The following tablet servers reported a status other than Online."); badTServerList.addSortableColumn("Tablet Server"); badTServerList.addSortableColumn("Tablet Server Status"); for (Entry<String,Byte> badserver : Monitor.getMmi().badTServers.entrySet()) badTServerList.addRow(badserver.getKey(), TabletServerState.getStateById(badserver.getValue()).name()); badTServerList.generate(req, sb); } }
synchronized (badServers) { for (TServerInstance bad : badServers.keySet()) { result.badTServers.put(bad.hostPort(), TabletServerState.UNRESPONSIVE.getId());
private void doBadTserverList(HttpServletRequest req, StringBuilder sb) { if (Monitor.getMmi() != null && !Monitor.getMmi().badTServers.isEmpty()) { Table badTServerList = new Table("badtservers", "Non-Functioning Tablet Servers", "error"); badTServerList .setSubCaption("The following tablet servers reported a status other than Online."); badTServerList.addSortableColumn("Tablet Server"); badTServerList.addSortableColumn("Tablet Server Status"); for (Entry<String,Byte> badserver : Monitor.getMmi().badTServers.entrySet()) badTServerList.addRow(badserver.getKey(), TabletServerState.getStateById(badserver.getValue()).name()); badTServerList.generate(req, sb); } }
synchronized (badServers) { for (TServerInstance bad : badServers.keySet()) { result.badTServers.put(bad.hostPort(), TabletServerState.UNRESPONSIVE.getId());