当前位置: 首页>>代码示例>>Java>>正文


Java DatanodeDescriptor.isDecommissioned方法代码示例

本文整理汇总了Java中org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor.isDecommissioned方法的典型用法代码示例。如果您正苦于以下问题:Java DatanodeDescriptor.isDecommissioned方法的具体用法?Java DatanodeDescriptor.isDecommissioned怎么用?Java DatanodeDescriptor.isDecommissioned使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor的用法示例。


在下文中一共展示了DatanodeDescriptor.isDecommissioned方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getNumDecomLiveDataNodes

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
@Override // FSNamesystemMBean
public int getNumDecomLiveDataNodes() {
  final List<DatanodeDescriptor> live = new ArrayList<DatanodeDescriptor>();
  getBlockManager().getDatanodeManager().fetchDatanodes(live, null, true);
  int liveDecommissioned = 0;
  for (DatanodeDescriptor node : live) {
    liveDecommissioned += node.isDecommissioned() ? 1 : 0;
  }
  return liveDecommissioned;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:11,代码来源:FSNamesystem.java

示例2: getNumDecomDeadDataNodes

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
@Override // FSNamesystemMBean
public int getNumDecomDeadDataNodes() {
  final List<DatanodeDescriptor> dead = new ArrayList<DatanodeDescriptor>();
  getBlockManager().getDatanodeManager().fetchDatanodes(null, dead, true);
  int deadDecommissioned = 0;
  for (DatanodeDescriptor node : dead) {
    deadDecommissioned += node.isDecommissioned() ? 1 : 0;
  }
  return deadDecommissioned;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:11,代码来源:FSNamesystem.java

示例3: getNumDecomLiveDataNodes

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
@Override // FSNamesystemMBean
public int getNumDecomLiveDataNodes() {
  final List<DatanodeDescriptor> live = new ArrayList<DatanodeDescriptor>();
  getBlockManager().getDatanodeManager().fetchDatanodes(live, null, false);
  int liveDecommissioned = 0;
  for (DatanodeDescriptor node : live) {
    liveDecommissioned += node.isDecommissioned() ? 1 : 0;
  }
  return liveDecommissioned;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:11,代码来源:FSNamesystem.java

示例4: getNumDecomDeadDataNodes

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
@Override // FSNamesystemMBean
public int getNumDecomDeadDataNodes() {
  final List<DatanodeDescriptor> dead = new ArrayList<DatanodeDescriptor>();
  getBlockManager().getDatanodeManager().fetchDatanodes(null, dead, false);
  int deadDecommissioned = 0;
  for (DatanodeDescriptor node : dead) {
    deadDecommissioned += node.isDecommissioned() ? 1 : 0;
  }
  return deadDecommissioned;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:11,代码来源:FSNamesystem.java

示例5: blockIdCK

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
/**
 * Check block information given a blockId number
 *
*/
public void blockIdCK(String blockId) {

  if(blockId == null) {
    out.println("Please provide valid blockId!");
    return;
  }

  BlockManager bm = namenode.getNamesystem().getBlockManager();
  try {
    //get blockInfo
    Block block = new Block(Block.getBlockId(blockId));
    //find which file this block belongs to
    BlockInfoContiguous blockInfo = bm.getStoredBlock(block);
    if(blockInfo == null) {
      out.println("Block "+ blockId +" " + NONEXISTENT_STATUS);
      LOG.warn("Block "+ blockId + " " + NONEXISTENT_STATUS);
      return;
    }
    BlockCollection bc = bm.getBlockCollection(blockInfo);
    INode iNode = (INode) bc;
    NumberReplicas numberReplicas= bm.countNodes(block);
    out.println("Block Id: " + blockId);
    out.println("Block belongs to: "+iNode.getFullPathName());
    out.println("No. of Expected Replica: " + bc.getBlockReplication());
    out.println("No. of live Replica: " + numberReplicas.liveReplicas());
    out.println("No. of excess Replica: " + numberReplicas.excessReplicas());
    out.println("No. of stale Replica: " + numberReplicas.replicasOnStaleNodes());
    out.println("No. of decommission Replica: "
        + numberReplicas.decommissionedReplicas());
    out.println("No. of corrupted Replica: " + numberReplicas.corruptReplicas());
    //record datanodes that have corrupted block replica
    Collection<DatanodeDescriptor> corruptionRecord = null;
    if (bm.getCorruptReplicas(block) != null) {
      corruptionRecord = bm.getCorruptReplicas(block);
    }

    //report block replicas status on datanodes
    for(int idx = (blockInfo.numNodes()-1); idx >= 0; idx--) {
      DatanodeDescriptor dn = blockInfo.getDatanode(idx);
      out.print("Block replica on datanode/rack: " + dn.getHostName() +
          dn.getNetworkLocation() + " ");
      if (corruptionRecord != null && corruptionRecord.contains(dn)) {
        out.print(CORRUPT_STATUS+"\t ReasonCode: "+
          bm.getCorruptReason(block,dn));
      } else if (dn.isDecommissioned() ){
        out.print(DECOMMISSIONED_STATUS);
      } else if (dn.isDecommissionInProgress()) {
        out.print(DECOMMISSIONING_STATUS);
      } else {
        out.print(HEALTHY_STATUS);
      }
      out.print("\n");
    }
  } catch (Exception e){
    String errMsg = "Fsck on blockId '" + blockId;
    LOG.warn(errMsg, e);
    out.println(e.getMessage());
    out.print("\n\n" + errMsg);
    LOG.warn("Error in looking up block", e);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:66,代码来源:NamenodeFsck.java

示例6: blockIdCK

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
/**
 * Check block information given a blockId number
 *
*/
public void blockIdCK(String blockId) {

  if(blockId == null) {
    out.println("Please provide valid blockId!");
    return;
  }

  try {
    //get blockInfo
    Block block = new Block(Block.getBlockId(blockId));
    //find which file this block belongs to
    BlockInfo blockInfo = blockManager.getStoredBlock(block);
    if(blockInfo == null) {
      out.println("Block "+ blockId +" " + NONEXISTENT_STATUS);
      LOG.warn("Block "+ blockId + " " + NONEXISTENT_STATUS);
      return;
    }
    final INodeFile iNode = namenode.getNamesystem().getBlockCollection(blockInfo);
    NumberReplicas numberReplicas= blockManager.countNodes(blockInfo);
    out.println("Block Id: " + blockId);
    out.println("Block belongs to: "+iNode.getFullPathName());
    out.println("No. of Expected Replica: " +
        blockManager.getExpectedReplicaNum(blockInfo));
    out.println("No. of live Replica: " + numberReplicas.liveReplicas());
    out.println("No. of excess Replica: " + numberReplicas.excessReplicas());
    out.println("No. of stale Replica: " +
        numberReplicas.replicasOnStaleNodes());
    out.println("No. of decommissioned Replica: "
        + numberReplicas.decommissioned());
    out.println("No. of decommissioning Replica: "
        + numberReplicas.decommissioning());
    out.println("No. of corrupted Replica: " +
        numberReplicas.corruptReplicas());
    //record datanodes that have corrupted block replica
    Collection<DatanodeDescriptor> corruptionRecord = null;
    if (blockManager.getCorruptReplicas(block) != null) {
      corruptionRecord = blockManager.getCorruptReplicas(block);
    }

    //report block replicas status on datanodes
    for(int idx = (blockInfo.numNodes()-1); idx >= 0; idx--) {
      DatanodeDescriptor dn = blockInfo.getDatanode(idx);
      out.print("Block replica on datanode/rack: " + dn.getHostName() +
          dn.getNetworkLocation() + " ");
      if (corruptionRecord != null && corruptionRecord.contains(dn)) {
        out.print(CORRUPT_STATUS + "\t ReasonCode: " +
            blockManager.getCorruptReason(block, dn));
      } else if (dn.isDecommissioned() ){
        out.print(DECOMMISSIONED_STATUS);
      } else if (dn.isDecommissionInProgress()) {
        out.print(DECOMMISSIONING_STATUS);
      } else {
        out.print(HEALTHY_STATUS);
      }
      out.print("\n");
    }
  } catch (Exception e){
    String errMsg = "Fsck on blockId '" + blockId;
    LOG.warn(errMsg, e);
    out.println(e.getMessage());
    out.print("\n\n" + errMsg);
    LOG.warn("Error in looking up block", e);
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:69,代码来源:NamenodeFsck.java

示例7: getReplicaInfo

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
/**
 * Display info of each replica for replication block.
 * For striped block group, display info of each internal block.
 */
private String getReplicaInfo(BlockInfo storedBlock) {
  if (!(showLocations || showRacks || showReplicaDetails)) {
    return "";
  }
  final boolean isComplete = storedBlock.isComplete();
  DatanodeStorageInfo[] storages = isComplete ?
      blockManager.getStorages(storedBlock) :
      storedBlock.getUnderConstructionFeature().getExpectedStorageLocations();
  StringBuilder sb = new StringBuilder(" [");

  for (int i = 0; i < storages.length; i++) {
    DatanodeStorageInfo storage = storages[i];
    DatanodeDescriptor dnDesc = storage.getDatanodeDescriptor();
    if (showRacks) {
      sb.append(NodeBase.getPath(dnDesc));
    } else {
      sb.append(new DatanodeInfoWithStorage(dnDesc, storage.getStorageID(),
          storage.getStorageType()));
    }
    if (showReplicaDetails) {
      LightWeightHashSet<BlockInfo> blocksExcess =
          blockManager.excessReplicateMap.get(dnDesc.getDatanodeUuid());
      Collection<DatanodeDescriptor> corruptReplicas =
          blockManager.getCorruptReplicas(storedBlock);
      sb.append("(");
      if (dnDesc.isDecommissioned()) {
        sb.append("DECOMMISSIONED)");
      } else if (dnDesc.isDecommissionInProgress()) {
        sb.append("DECOMMISSIONING)");
      } else if (corruptReplicas != null
          && corruptReplicas.contains(dnDesc)) {
        sb.append("CORRUPT)");
      } else if (blocksExcess != null
          && blocksExcess.contains(storedBlock)) {
        sb.append("EXCESS)");
      } else if (dnDesc.isStale(this.staleInterval)) {
        sb.append("STALE_NODE)");
      } else if (storage.areBlockContentsStale()) {
        sb.append("STALE_BLOCK_CONTENT)");
      } else {
        sb.append("LIVE)");
      }
    }
    if (i < storages.length - 1) {
      sb.append(", ");
    }
  }
  sb.append(']');
  return sb.toString();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:55,代码来源:NamenodeFsck.java

示例8: getNodeUsage

import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor; //导入方法依赖的package包/类
@Override // NameNodeMXBean
public String getNodeUsage() {
  float median = 0;
  float max = 0;
  float min = 0;
  float dev = 0;

  final Map<String, Map<String,Object>> info =
      new HashMap<String, Map<String,Object>>();
  final List<DatanodeDescriptor> live = new ArrayList<DatanodeDescriptor>();
  blockManager.getDatanodeManager().fetchDatanodes(live, null, true);
  for (Iterator<DatanodeDescriptor> it = live.iterator(); it.hasNext();) {
    DatanodeDescriptor node = it.next();
    if (node.isDecommissionInProgress() || node.isDecommissioned()) {
      it.remove();
    }
  }

  if (live.size() > 0) {
    float totalDfsUsed = 0;
    float[] usages = new float[live.size()];
    int i = 0;
    for (DatanodeDescriptor dn : live) {
      usages[i++] = dn.getDfsUsedPercent();
      totalDfsUsed += dn.getDfsUsedPercent();
    }
    totalDfsUsed /= live.size();
    Arrays.sort(usages);
    median = usages[usages.length / 2];
    max = usages[usages.length - 1];
    min = usages[0];

    for (i = 0; i < usages.length; i++) {
      dev += (usages[i] - totalDfsUsed) * (usages[i] - totalDfsUsed);
    }
    dev = (float) Math.sqrt(dev / usages.length);
  }

  final Map<String, Object> innerInfo = new HashMap<String, Object>();
  innerInfo.put("min", StringUtils.format("%.2f%%", min));
  innerInfo.put("median", StringUtils.format("%.2f%%", median));
  innerInfo.put("max", StringUtils.format("%.2f%%", max));
  innerInfo.put("stdDev", StringUtils.format("%.2f%%", dev));
  info.put("nodeUsage", innerInfo);

  return JSON.toString(info);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:48,代码来源:FSNamesystem.java


注:本文中的org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor.isDecommissioned方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。