/** * @return the info of all block workers */ public List<BlockWorkerInfo> getAllWorkers() throws IOException { try (CloseableResource<BlockMasterClient> masterClientResource = mContext.acquireBlockMasterClientResource()) { return masterClientResource.get().getWorkerInfoList().stream() .map(w -> new BlockWorkerInfo(w.getAddress(), w.getCapacityBytes(), w.getUsedBytes())) .collect(toList()); } }
initVariables(); for (WorkerInfo workerInfo : workerInfoList) { long usedBytes = workerInfo.getUsedBytes(); long capacityBytes = workerInfo.getCapacityBytes(); mSumCapacityBytes += capacityBytes;
String workerName = info.getAddress().getHost(); long usedBytes = info.getUsedBytes(); long capacityBytes = info.getCapacityBytes();
/** * Converts wire type to proto type. * * @param workerInfo the wire representation to convert * @return the converted proto representation */ public static alluxio.grpc.WorkerInfo toProto(WorkerInfo workerInfo) { return alluxio.grpc.WorkerInfo.newBuilder().setId(workerInfo.getId()) .setAddress(toProto(workerInfo.getAddress())) .setLastContactSec(workerInfo.getLastContactSec()).setState(workerInfo.getState()) .setCapacityBytes(workerInfo.getCapacityBytes()).setUsedBytes(workerInfo.getUsedBytes()) .setStartTimeMs(workerInfo.getStartTimeMs()) .putAllCapacityBytesOnTiers(workerInfo.getCapacityBytesOnTiers()) .putAllUsedBytesOnTiers(workerInfo.getUsedBytesOnTiers()).build(); }
/** * Prints worker information when only one tier exists. * * @param workerInfoList the worker info list to get info from */ private void printShortWorkerInfo(List<WorkerInfo> workerInfoList) { String tier = mCapacityTierInfoMap.firstKey(); String shortInfoFormat = getInfoFormat(workerInfoList, true); print(String.format("%n" + shortInfoFormat, "Worker Name", "Last Heartbeat", "Storage", tier)); for (WorkerInfo info : workerInfoList) { long capacityBytes = info.getCapacityBytes(); long usedBytes = info.getUsedBytes(); String usedPercentageInfo = ""; if (capacityBytes != 0) { int usedPercentage = (int) (100L * usedBytes / capacityBytes); usedPercentageInfo = String.format(" (%s%%)", usedPercentage); } print(String.format(shortInfoFormat, info.getAddress().getHost(), info.getLastContactSec(), "capacity", FormatUtils.getSizeFromBytes(capacityBytes))); print(String.format(shortInfoFormat, "", "", "used", FormatUtils.getSizeFromBytes(usedBytes) + usedPercentageInfo)); } }
public void checkEquality(WorkerInfo a, WorkerInfo b) { Assert.assertEquals(a.getId(), b.getId()); Assert.assertEquals(a.getAddress(), b.getAddress()); Assert.assertEquals(a.getLastContactSec(), b.getLastContactSec()); Assert.assertEquals(a.getCapacityBytes(), b.getCapacityBytes()); Assert.assertEquals(a.getUsedBytes(), b.getUsedBytes()); Assert.assertEquals(a.getStartTimeMs(), b.getStartTimeMs()); Assert.assertEquals(a.getState(), b.getState()); Assert.assertEquals(a.getCapacityBytesOnTiers(), b.getCapacityBytesOnTiers()); Assert.assertEquals(a.getUsedBytesOnTiers(), b.getUsedBytesOnTiers()); Assert.assertEquals(a, b); }
@Test public void workerHeartbeatUpdatesMemoryCount() throws Exception { // Create a worker. long worker = mBlockMaster.getWorkerId(NET_ADDRESS_1); Map<String, Long> initialUsedBytesOnTiers = ImmutableMap.of("MEM", 50L); mBlockMaster.workerRegister(worker, Arrays.asList("MEM"), ImmutableMap.of("MEM", 100L), initialUsedBytesOnTiers, NO_BLOCKS_ON_TIERS, RegisterWorkerPOptions.getDefaultInstance()); // Update used bytes with a worker heartbeat. Map<String, Long> newUsedBytesOnTiers = ImmutableMap.of("MEM", 50L); mBlockMaster.workerHeartbeat(worker, null, newUsedBytesOnTiers, NO_BLOCKS, NO_BLOCKS_ON_TIERS, mMetrics); WorkerInfo workerInfo = Iterables.getOnlyElement(mBlockMaster.getWorkerInfoList()); assertEquals(50, workerInfo.getUsedBytes()); }
/** * Instantiates a new Node info. * * @param workerInfo the worker info */ public NodeInfo(WorkerInfo workerInfo) { mHost = workerInfo.getAddress().getHost(); mWebPort = workerInfo.getAddress().getWebPort(); mLastContactSec = Integer.toString(workerInfo.getLastContactSec()); mWorkerState = workerInfo.getState(); mCapacityBytes = workerInfo.getCapacityBytes(); mUsedBytes = workerInfo.getUsedBytes(); if (mCapacityBytes != 0) { mUsedPercent = (int) (100L * mUsedBytes / mCapacityBytes); } else { mUsedPercent = 0; } mFreePercent = 100 - mUsedPercent; mUptimeClockTime = WebUtils.convertMsToShortClockTime( System.currentTimeMillis() - workerInfo.getStartTimeMs()); mWorkerId = workerInfo.getId(); }
/** * Tests the {@link MasterWorkerInfo#generateWorkerInfo} method. */ @Test public void workerInfoGeneration() { WorkerInfo workerInfo = mInfo.generateWorkerInfo(null, true); assertEquals(mInfo.getId(), workerInfo.getId()); assertEquals(mInfo.getWorkerAddress(), workerInfo.getAddress()); assertEquals("In Service", workerInfo.getState()); assertEquals(mInfo.getCapacityBytes(), workerInfo.getCapacityBytes()); assertEquals(mInfo.getUsedBytes(), workerInfo.getUsedBytes()); assertEquals(mInfo.getStartTime(), workerInfo.getStartTimeMs()); }
/** * @return the info of all active block workers * @throws IOException when work info list cannot be obtained from master * @throws AlluxioException if network connection failed */ public List<BlockWorkerInfo> getWorkerInfoList() throws IOException, AlluxioException { List<BlockWorkerInfo> infoList = Lists.newArrayList(); BlockMasterClient masterClient = mContext.acquireMasterClient(); try { for (WorkerInfo workerInfo : masterClient.getWorkerInfoList()) { infoList.add(new BlockWorkerInfo(workerInfo.getAddress(), workerInfo.getCapacityBytes(), workerInfo.getUsedBytes())); } return infoList; } finally { mContext.releaseMasterClient(masterClient); } }
private NodeInfo(WorkerInfo workerInfo) { mHost = workerInfo.getAddress().getHost(); mWebPort = workerInfo.getAddress().getWebPort(); mLastContactSec = Integer.toString(workerInfo.getLastContactSec()); mWorkerState = workerInfo.getState(); mCapacityBytes = workerInfo.getCapacityBytes(); mUsedBytes = workerInfo.getUsedBytes(); if (mCapacityBytes != 0) { mUsedPercent = (int) (100L * mUsedBytes / mCapacityBytes); } else { mUsedPercent = 0; } mFreePercent = 100 - mUsedPercent; mUptimeClockTime = WebUtils.convertMsToShortClockTime( System.currentTimeMillis() - workerInfo.getStartTimeMs()); mWorkerId = workerInfo.getId(); }