/** * test BlackListInfo class * * @throws IOException */ @Test (timeout=5000) public void testBlackListInfo() throws IOException { BlackListInfo info = new BlackListInfo(); info.setBlackListReport("blackListInfo"); info.setReasonForBlackListing("reasonForBlackListing"); info.setTrackerName("trackerName"); ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); DataOutput out = new DataOutputStream(byteOut); info.write(out); BlackListInfo info2 = new BlackListInfo(); info2.readFields(new DataInputStream(new ByteArrayInputStream(byteOut .toByteArray()))); assertEquals(info, info); assertEquals(info.toString(), info.toString()); assertEquals(info.getTrackerName(), "trackerName"); assertEquals(info.getReasonForBlackListing(), "reasonForBlackListing"); assertEquals(info.getBlackListReport(), "blackListInfo"); }
@Test public void testGetClusterStatusWithLocalJobRunner() throws Exception { Configuration conf = new Configuration(); conf.set(JTConfig.JT_IPC_ADDRESS, MRConfig.LOCAL_FRAMEWORK_NAME); conf.set(MRConfig.FRAMEWORK_NAME, MRConfig.LOCAL_FRAMEWORK_NAME); JobClient client = new JobClient(conf); ClusterStatus clusterStatus = client.getClusterStatus(true); Collection<String> activeTrackerNames = clusterStatus .getActiveTrackerNames(); Assert.assertEquals(0, activeTrackerNames.size()); int blacklistedTrackers = clusterStatus.getBlacklistedTrackers(); Assert.assertEquals(0, blacklistedTrackers); Collection<BlackListInfo> blackListedTrackersInfo = clusterStatus .getBlackListedTrackersInfo(); Assert.assertEquals(0, blackListedTrackersInfo.size()); }
/** * test BlackListInfo class * * @throws IOException */ @Test (timeout=5000) public void testBlackListInfo() throws IOException { BlackListInfo info = new BlackListInfo(); info.setBlackListReport("blackListInfo"); info.setReasonForBlackListing("reasonForBlackListing"); info.setTrackerName("trackerName"); ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); DataOutput out = new DataOutputStream(byteOut); info.write(out); BlackListInfo info2 = new BlackListInfo(); info2.readFields(new DataInputStream(new ByteArrayInputStream(byteOut .toByteArray()))); assertEquals(info, info2); assertEquals(info.toString(), info2.toString()); assertEquals("trackerName", info2.getTrackerName()); assertEquals("reasonForBlackListing", info2.getReasonForBlackListing()); assertEquals("blackListInfo", info2.getBlackListReport()); }
synchronized Collection<BlackListInfo> getBlackListedTrackers() { Collection<BlackListInfo> blackListedTrackers = new ArrayList<BlackListInfo>(); for(TaskTrackerStatus tracker : blacklistedTaskTrackers()) { String hostName = tracker.getHost(); BlackListInfo bi = new BlackListInfo(); bi.setTrackerName(tracker.getTrackerName()); Set<ReasonForBlackListing> rfbs = getReasonForBlackList(hostName); StringBuffer sb = new StringBuffer(); for(ReasonForBlackListing rfb : rfbs) { sb.append(rfb.toString()); sb.append(","); } if (sb.length() > 0) { sb.replace(sb.length()-1, sb.length(), ""); } bi.setReasonForBlackListing(sb.toString()); bi.setBlackListReport( getFaultReport(hostName)); blackListedTrackers.add(bi); } return blackListedTrackers; }
private Collection<BlackListInfo> arrayToBlackListInfo(TaskTrackerInfo[] objs) { Collection<BlackListInfo> list = new ArrayList<BlackListInfo>(); for (TaskTrackerInfo info: objs) { BlackListInfo binfo = new BlackListInfo(); binfo.setTrackerName(info.getTaskTrackerName()); binfo.setReasonForBlackListing(info.getReasonForBlacklist()); binfo.setBlackListReport(info.getBlacklistReport()); list.add(binfo); } return list; }
public synchronized ClusterStatus getClusterStatus(boolean detailed) { synchronized (taskTrackers) { if (detailed) { List<List<String>> trackerNames = taskTrackerNames(); Collection<BlackListInfo> blackListedTrackers = getBlackListedTrackers(); return new ClusterStatus(trackerNames.get(0), blackListedTrackers, tasktrackerExpiryInterval, totalMaps, totalReduces, totalMapTaskCapacity, totalReduceTaskCapacity, JobTrackerStatus.valueOf(state.name()), getExcludedNodes().size() ); } else { return new ClusterStatus(taskTrackers.size() - getBlacklistedTrackerCount(), getBlacklistedTrackerCount(), tasktrackerExpiryInterval, totalMaps, totalReduces, totalMapTaskCapacity, totalReduceTaskCapacity, JobTrackerStatus.valueOf(state.name()), getExcludedNodes().size()); } } }
/** * Get all blacklisted trackers in cluster. * @return array of TaskTrackerInfo */ public TaskTrackerInfo[] getBlacklistedTrackers() throws IOException, InterruptedException { Collection<BlackListInfo> blackListed = getBlackListedTrackers(); TaskTrackerInfo[] info = new TaskTrackerInfo[blackListed.size()]; int i = 0; for (BlackListInfo binfo : blackListed) { info[i++] = new TaskTrackerInfo(binfo.getTrackerName(), binfo.getReasonForBlackListing(), binfo.getBlackListReport()); } return info; }