Java 类org.apache.hadoop.hdfs.server.protocol.NamenodeCommand 实例源码

项目:hadoop    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  writeLock();
  try {
    checkOperation(OperationCategory.CHECKPOINT);
    checkNameNodeSafeMode("Checkpoint not started");

    LOG.info("Start checkpoint for " + backupNode.getAddress());
    NamenodeCommand cmd = getFSImage().startCheckpoint(backupNode,
        activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
  }
}
项目:hadoop    文件:NameNodeRpcServer.java   
@Override // NamenodeProtocol
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  checkNNStartup();
  namesystem.checkSuperuserPrivilege();
  verifyRequest(registration);
  if(!nn.isRole(NamenodeRole.NAMENODE))
    throw new IOException("Only an ACTIVE node can invoke startCheckpoint.");

  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
    null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  NamenodeCommand ret = null;
  try {
    ret = namesystem.startCheckpoint(registration, nn.setRegistration());
  } finally {
    RetryCache.setState(cacheEntry, ret != null, ret);
  }
  return ret;
}
项目:aliyun-oss-hadoop-fs    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  writeLock();
  try {
    checkOperation(OperationCategory.CHECKPOINT);
    checkNameNodeSafeMode("Checkpoint not started");

    LOG.info("Start checkpoint for " + backupNode.getAddress());
    NamenodeCommand cmd = getFSImage().startCheckpoint(backupNode,
        activeNamenode, getEffectiveLayoutVersion());
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
  }
}
项目:aliyun-oss-hadoop-fs    文件:NameNodeRpcServer.java   
@Override // NamenodeProtocol
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  checkNNStartup();
  namesystem.checkSuperuserPrivilege();
  verifyRequest(registration);
  if(!nn.isRole(NamenodeRole.NAMENODE))
    throw new IOException("Only an ACTIVE node can invoke startCheckpoint.");

  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
    null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  NamenodeCommand ret = null;
  try {
    ret = namesystem.startCheckpoint(registration, nn.setRegistration());
  } finally {
    RetryCache.setState(cacheEntry, ret != null, ret);
  }
  return ret;
}
项目:big-c    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  writeLock();
  try {
    checkOperation(OperationCategory.CHECKPOINT);
    checkNameNodeSafeMode("Checkpoint not started");

    LOG.info("Start checkpoint for " + backupNode.getAddress());
    NamenodeCommand cmd = getFSImage().startCheckpoint(backupNode,
        activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
  }
}
项目:big-c    文件:NameNodeRpcServer.java   
@Override // NamenodeProtocol
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  checkNNStartup();
  namesystem.checkSuperuserPrivilege();
  verifyRequest(registration);
  if(!nn.isRole(NamenodeRole.NAMENODE))
    throw new IOException("Only an ACTIVE node can invoke startCheckpoint.");

  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
    null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  NamenodeCommand ret = null;
  try {
    ret = namesystem.startCheckpoint(registration, nn.setRegistration());
  } finally {
    RetryCache.setState(cacheEntry, ret != null, ret);
  }
  return ret;
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
      null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  writeLock();
  NamenodeCommand cmd = null;
  try {
    checkOperation(OperationCategory.CHECKPOINT);
    checkNameNodeSafeMode("Checkpoint not started");

    LOG.info("Start checkpoint for " + backupNode.getAddress());
    cmd = getFSImage().startCheckpoint(backupNode, activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
    RetryCache.setState(cacheEntry, cmd != null, cmd);
  }
}
项目:hadoop-plus    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
      null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  writeLock();
  NamenodeCommand cmd = null;
  try {
    checkOperation(OperationCategory.CHECKPOINT);

    if (isInSafeMode()) {
      throw new SafeModeException("Checkpoint not started", safeMode);
    }
    LOG.info("Start checkpoint for " + backupNode.getAddress());
    cmd = getFSImage().startCheckpoint(backupNode, activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
    RetryCache.setState(cacheEntry, cmd != null, cmd);
  }
}
项目:FlexMap    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
      null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  writeLock();
  NamenodeCommand cmd = null;
  try {
    checkOperation(OperationCategory.CHECKPOINT);
    checkNameNodeSafeMode("Checkpoint not started");

    LOG.info("Start checkpoint for " + backupNode.getAddress());
    cmd = getFSImage().startCheckpoint(backupNode, activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
    RetryCache.setState(cacheEntry, cmd != null, cmd);
  }
}
项目:hadoop-TCP    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
      null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  writeLock();
  NamenodeCommand cmd = null;
  try {
    checkOperation(OperationCategory.CHECKPOINT);

    if (isInSafeMode()) {
      throw new SafeModeException("Checkpoint not started", safeMode);
    }
    LOG.info("Start checkpoint for " + backupNode.getAddress());
    cmd = getFSImage().startCheckpoint(backupNode, activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
    RetryCache.setState(cacheEntry, cmd != null, cmd);
  }
}
项目:hardfs    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
      null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  writeLock();
  NamenodeCommand cmd = null;
  try {
    checkOperation(OperationCategory.CHECKPOINT);

    if (isInSafeMode()) {
      throw new SafeModeException("Checkpoint not started", safeMode);
    }
    LOG.info("Start checkpoint for " + backupNode.getAddress());
    cmd = getFSImage().startCheckpoint(backupNode, activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
    RetryCache.setState(cacheEntry, cmd != null, cmd);
  }
}
项目:hadoop-on-lustre2    文件:FSNamesystem.java   
NamenodeCommand startCheckpoint(NamenodeRegistration backupNode,
    NamenodeRegistration activeNamenode) throws IOException {
  checkOperation(OperationCategory.CHECKPOINT);
  CacheEntryWithPayload cacheEntry = RetryCache.waitForCompletion(retryCache,
      null);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return (NamenodeCommand) cacheEntry.getPayload();
  }
  writeLock();
  NamenodeCommand cmd = null;
  try {
    checkOperation(OperationCategory.CHECKPOINT);
    checkNameNodeSafeMode("Checkpoint not started");

    LOG.info("Start checkpoint for " + backupNode.getAddress());
    cmd = getFSImage().startCheckpoint(backupNode, activeNamenode);
    getEditLog().logSync();
    return cmd;
  } finally {
    writeUnlock();
    RetryCache.setState(cacheEntry, cmd != null, cmd);
  }
}
项目:hadoop    文件:FSImage.java   
/**
 * Start checkpoint.
 * <p>
 * If backup storage contains image that is newer than or incompatible with 
 * what the active name-node has, then the backup node should shutdown.<br>
 * If the backup image is older than the active one then it should 
 * be discarded and downloaded from the active node.<br>
 * If the images are the same then the backup image will be used as current.
 * 
 * @param bnReg the backup node registration.
 * @param nnReg this (active) name-node registration.
 * @return {@link NamenodeCommand} if backup node should shutdown or
 * {@link CheckpointCommand} prescribing what backup node should 
 *         do with its image.
 * @throws IOException
 */
NamenodeCommand startCheckpoint(NamenodeRegistration bnReg, // backup node
                                NamenodeRegistration nnReg) // active name-node
throws IOException {
  LOG.info("Start checkpoint at txid " + getEditLog().getLastWrittenTxId());
  String msg = null;
  // Verify that checkpoint is allowed
  if(bnReg.getNamespaceID() != storage.getNamespaceID())
    msg = "Name node " + bnReg.getAddress()
          + " has incompatible namespace id: " + bnReg.getNamespaceID()
          + " expected: " + storage.getNamespaceID();
  else if(bnReg.isRole(NamenodeRole.NAMENODE))
    msg = "Name node " + bnReg.getAddress()
          + " role " + bnReg.getRole() + ": checkpoint is not allowed.";
  else if(bnReg.getLayoutVersion() < storage.getLayoutVersion()
      || (bnReg.getLayoutVersion() == storage.getLayoutVersion()
          && bnReg.getCTime() > storage.getCTime()))
    // remote node has newer image age
    msg = "Name node " + bnReg.getAddress()
          + " has newer image layout version: LV = " +bnReg.getLayoutVersion()
          + " cTime = " + bnReg.getCTime()
          + ". Current version: LV = " + storage.getLayoutVersion()
          + " cTime = " + storage.getCTime();
  if(msg != null) {
    LOG.error(msg);
    return new NamenodeCommand(NamenodeProtocol.ACT_SHUTDOWN);
  }
  boolean needToReturnImg = true;
  if(storage.getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
    // do not return image if there are no image directories
    needToReturnImg = false;
  CheckpointSignature sig = rollEditLog();
  return new CheckpointCommand(sig, needToReturnImg);
}
项目:hadoop    文件:PBHelper.java   
public static NamenodeCommandProto convert(NamenodeCommand cmd) {
  if (cmd instanceof CheckpointCommand) {
    return NamenodeCommandProto.newBuilder().setAction(cmd.getAction())
        .setType(NamenodeCommandProto.Type.CheckPointCommand)
        .setCheckpointCmd(convert((CheckpointCommand) cmd)).build();
  }
  return NamenodeCommandProto.newBuilder()
      .setType(NamenodeCommandProto.Type.NamenodeCommand)
      .setAction(cmd.getAction()).build();
}
项目:hadoop    文件:PBHelper.java   
public static NamenodeCommand convert(NamenodeCommandProto cmd) {
  if (cmd == null) return null;
  switch (cmd.getType()) {
  case CheckPointCommand:
    CheckpointCommandProto chkPt = cmd.getCheckpointCmd();
    return new CheckpointCommand(PBHelper.convert(chkPt.getSignature()),
        chkPt.getNeedToReturnImage());
  default:
    return new NamenodeCommand(cmd.getAction());
  }
}
项目:hadoop    文件:NamenodeProtocolServerSideTranslatorPB.java   
@Override
public StartCheckpointResponseProto startCheckpoint(RpcController unused,
    StartCheckpointRequestProto request) throws ServiceException {
  NamenodeCommand cmd;
  try {
    cmd = impl.startCheckpoint(PBHelper.convert(request.getRegistration()));
  } catch (IOException e) {
    throw new ServiceException(e);
  }
  return StartCheckpointResponseProto.newBuilder()
      .setCommand(PBHelper.convert(cmd)).build();
}
项目:hadoop    文件:NamenodeProtocolTranslatorPB.java   
@Override
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  StartCheckpointRequestProto req = StartCheckpointRequestProto.newBuilder()
      .setRegistration(PBHelper.convert(registration)).build();
  NamenodeCommandProto cmd;
  try {
    cmd = rpcProxy.startCheckpoint(NULL_CONTROLLER, req).getCommand();
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
  return PBHelper.convert(cmd);
}
项目:aliyun-oss-hadoop-fs    文件:FSImage.java   
/**
 * Start checkpoint.
 * <p>
 * If backup storage contains image that is newer than or incompatible with 
 * what the active name-node has, then the backup node should shutdown.<br>
 * If the backup image is older than the active one then it should 
 * be discarded and downloaded from the active node.<br>
 * If the images are the same then the backup image will be used as current.
 * 
 * @param bnReg the backup node registration.
 * @param nnReg this (active) name-node registration.
 * @return {@link NamenodeCommand} if backup node should shutdown or
 * {@link CheckpointCommand} prescribing what backup node should 
 *         do with its image.
 * @throws IOException
 */
NamenodeCommand startCheckpoint(NamenodeRegistration bnReg, // backup node
                                NamenodeRegistration nnReg,
                                int layoutVersion) // active name-node
throws IOException {
  LOG.info("Start checkpoint at txid " + getEditLog().getLastWrittenTxId());
  String msg = null;
  // Verify that checkpoint is allowed
  if(bnReg.getNamespaceID() != storage.getNamespaceID())
    msg = "Name node " + bnReg.getAddress()
          + " has incompatible namespace id: " + bnReg.getNamespaceID()
          + " expected: " + storage.getNamespaceID();
  else if(bnReg.isRole(NamenodeRole.NAMENODE))
    msg = "Name node " + bnReg.getAddress()
          + " role " + bnReg.getRole() + ": checkpoint is not allowed.";
  else if(bnReg.getLayoutVersion() < storage.getLayoutVersion()
      || (bnReg.getLayoutVersion() == storage.getLayoutVersion()
          && bnReg.getCTime() > storage.getCTime()))
    // remote node has newer image age
    msg = "Name node " + bnReg.getAddress()
          + " has newer image layout version: LV = " +bnReg.getLayoutVersion()
          + " cTime = " + bnReg.getCTime()
          + ". Current version: LV = " + storage.getLayoutVersion()
          + " cTime = " + storage.getCTime();
  if(msg != null) {
    LOG.error(msg);
    return new NamenodeCommand(NamenodeProtocol.ACT_SHUTDOWN);
  }
  boolean needToReturnImg = true;
  if(storage.getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
    // do not return image if there are no image directories
    needToReturnImg = false;
  CheckpointSignature sig = rollEditLog(layoutVersion);
  return new CheckpointCommand(sig, needToReturnImg);
}
项目:aliyun-oss-hadoop-fs    文件:PBHelper.java   
public static NamenodeCommandProto convert(NamenodeCommand cmd) {
  if (cmd instanceof CheckpointCommand) {
    return NamenodeCommandProto.newBuilder().setAction(cmd.getAction())
        .setType(NamenodeCommandProto.Type.CheckPointCommand)
        .setCheckpointCmd(convert((CheckpointCommand) cmd)).build();
  }
  return NamenodeCommandProto.newBuilder()
      .setType(NamenodeCommandProto.Type.NamenodeCommand)
      .setAction(cmd.getAction()).build();
}
项目:aliyun-oss-hadoop-fs    文件:PBHelper.java   
public static NamenodeCommand convert(NamenodeCommandProto cmd) {
  if (cmd == null) return null;
  switch (cmd.getType()) {
  case CheckPointCommand:
    CheckpointCommandProto chkPt = cmd.getCheckpointCmd();
    return new CheckpointCommand(PBHelper.convert(chkPt.getSignature()),
        chkPt.getNeedToReturnImage());
  default:
    return new NamenodeCommand(cmd.getAction());
  }
}
项目:aliyun-oss-hadoop-fs    文件:NamenodeProtocolServerSideTranslatorPB.java   
@Override
public StartCheckpointResponseProto startCheckpoint(RpcController unused,
    StartCheckpointRequestProto request) throws ServiceException {
  NamenodeCommand cmd;
  try {
    cmd = impl.startCheckpoint(PBHelper.convert(request.getRegistration()));
  } catch (IOException e) {
    throw new ServiceException(e);
  }
  return StartCheckpointResponseProto.newBuilder()
      .setCommand(PBHelper.convert(cmd)).build();
}
项目:aliyun-oss-hadoop-fs    文件:NamenodeProtocolTranslatorPB.java   
@Override
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  StartCheckpointRequestProto req = StartCheckpointRequestProto.newBuilder()
      .setRegistration(PBHelper.convert(registration)).build();
  NamenodeCommandProto cmd;
  try {
    cmd = rpcProxy.startCheckpoint(NULL_CONTROLLER, req).getCommand();
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
  return PBHelper.convert(cmd);
}
项目:big-c    文件:FSImage.java   
/**
 * Start checkpoint.
 * <p>
 * If backup storage contains image that is newer than or incompatible with 
 * what the active name-node has, then the backup node should shutdown.<br>
 * If the backup image is older than the active one then it should 
 * be discarded and downloaded from the active node.<br>
 * If the images are the same then the backup image will be used as current.
 * 
 * @param bnReg the backup node registration.
 * @param nnReg this (active) name-node registration.
 * @return {@link NamenodeCommand} if backup node should shutdown or
 * {@link CheckpointCommand} prescribing what backup node should 
 *         do with its image.
 * @throws IOException
 */
NamenodeCommand startCheckpoint(NamenodeRegistration bnReg, // backup node
                                NamenodeRegistration nnReg) // active name-node
throws IOException {
  LOG.info("Start checkpoint at txid " + getEditLog().getLastWrittenTxId());
  String msg = null;
  // Verify that checkpoint is allowed
  if(bnReg.getNamespaceID() != storage.getNamespaceID())
    msg = "Name node " + bnReg.getAddress()
          + " has incompatible namespace id: " + bnReg.getNamespaceID()
          + " expected: " + storage.getNamespaceID();
  else if(bnReg.isRole(NamenodeRole.NAMENODE))
    msg = "Name node " + bnReg.getAddress()
          + " role " + bnReg.getRole() + ": checkpoint is not allowed.";
  else if(bnReg.getLayoutVersion() < storage.getLayoutVersion()
      || (bnReg.getLayoutVersion() == storage.getLayoutVersion()
          && bnReg.getCTime() > storage.getCTime()))
    // remote node has newer image age
    msg = "Name node " + bnReg.getAddress()
          + " has newer image layout version: LV = " +bnReg.getLayoutVersion()
          + " cTime = " + bnReg.getCTime()
          + ". Current version: LV = " + storage.getLayoutVersion()
          + " cTime = " + storage.getCTime();
  if(msg != null) {
    LOG.error(msg);
    return new NamenodeCommand(NamenodeProtocol.ACT_SHUTDOWN);
  }
  boolean needToReturnImg = true;
  if(storage.getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
    // do not return image if there are no image directories
    needToReturnImg = false;
  CheckpointSignature sig = rollEditLog();
  return new CheckpointCommand(sig, needToReturnImg);
}
项目:big-c    文件:PBHelper.java   
public static NamenodeCommandProto convert(NamenodeCommand cmd) {
  if (cmd instanceof CheckpointCommand) {
    return NamenodeCommandProto.newBuilder().setAction(cmd.getAction())
        .setType(NamenodeCommandProto.Type.CheckPointCommand)
        .setCheckpointCmd(convert((CheckpointCommand) cmd)).build();
  }
  return NamenodeCommandProto.newBuilder()
      .setType(NamenodeCommandProto.Type.NamenodeCommand)
      .setAction(cmd.getAction()).build();
}
项目:big-c    文件:PBHelper.java   
public static NamenodeCommand convert(NamenodeCommandProto cmd) {
  if (cmd == null) return null;
  switch (cmd.getType()) {
  case CheckPointCommand:
    CheckpointCommandProto chkPt = cmd.getCheckpointCmd();
    return new CheckpointCommand(PBHelper.convert(chkPt.getSignature()),
        chkPt.getNeedToReturnImage());
  default:
    return new NamenodeCommand(cmd.getAction());
  }
}
项目:big-c    文件:NamenodeProtocolServerSideTranslatorPB.java   
@Override
public StartCheckpointResponseProto startCheckpoint(RpcController unused,
    StartCheckpointRequestProto request) throws ServiceException {
  NamenodeCommand cmd;
  try {
    cmd = impl.startCheckpoint(PBHelper.convert(request.getRegistration()));
  } catch (IOException e) {
    throw new ServiceException(e);
  }
  return StartCheckpointResponseProto.newBuilder()
      .setCommand(PBHelper.convert(cmd)).build();
}
项目:big-c    文件:NamenodeProtocolTranslatorPB.java   
@Override
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  StartCheckpointRequestProto req = StartCheckpointRequestProto.newBuilder()
      .setRegistration(PBHelper.convert(registration)).build();
  NamenodeCommandProto cmd;
  try {
    cmd = rpcProxy.startCheckpoint(NULL_CONTROLLER, req).getCommand();
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
  return PBHelper.convert(cmd);
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSImage.java   
/**
 * Start checkpoint.
 * <p>
 * If backup storage contains image that is newer than or incompatible with 
 * what the active name-node has, then the backup node should shutdown.<br>
 * If the backup image is older than the active one then it should 
 * be discarded and downloaded from the active node.<br>
 * If the images are the same then the backup image will be used as current.
 * 
 * @param bnReg the backup node registration.
 * @param nnReg this (active) name-node registration.
 * @return {@link NamenodeCommand} if backup node should shutdown or
 * {@link CheckpointCommand} prescribing what backup node should 
 *         do with its image.
 * @throws IOException
 */
NamenodeCommand startCheckpoint(NamenodeRegistration bnReg, // backup node
                                NamenodeRegistration nnReg) // active name-node
throws IOException {
  LOG.info("Start checkpoint at txid " + getEditLog().getLastWrittenTxId());
  String msg = null;
  // Verify that checkpoint is allowed
  if(bnReg.getNamespaceID() != storage.getNamespaceID())
    msg = "Name node " + bnReg.getAddress()
          + " has incompatible namespace id: " + bnReg.getNamespaceID()
          + " expected: " + storage.getNamespaceID();
  else if(bnReg.isRole(NamenodeRole.NAMENODE))
    msg = "Name node " + bnReg.getAddress()
          + " role " + bnReg.getRole() + ": checkpoint is not allowed.";
  else if(bnReg.getLayoutVersion() < storage.getLayoutVersion()
      || (bnReg.getLayoutVersion() == storage.getLayoutVersion()
          && bnReg.getCTime() > storage.getCTime()))
    // remote node has newer image age
    msg = "Name node " + bnReg.getAddress()
          + " has newer image layout version: LV = " +bnReg.getLayoutVersion()
          + " cTime = " + bnReg.getCTime()
          + ". Current version: LV = " + storage.getLayoutVersion()
          + " cTime = " + storage.getCTime();
  if(msg != null) {
    LOG.error(msg);
    return new NamenodeCommand(NamenodeProtocol.ACT_SHUTDOWN);
  }
  boolean needToReturnImg = true;
  if(storage.getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
    // do not return image if there are no image directories
    needToReturnImg = false;
  CheckpointSignature sig = rollEditLog();
  return new CheckpointCommand(sig, needToReturnImg);
}
项目:hadoop-2.6.0-cdh5.4.3    文件:NameNodeRpcServer.java   
@Override // NamenodeProtocol
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  checkNNStartup();
  namesystem.checkSuperuserPrivilege();
  verifyRequest(registration);
  if(!nn.isRole(NamenodeRole.NAMENODE))
    throw new IOException("Only an ACTIVE node can invoke startCheckpoint.");
  return namesystem.startCheckpoint(registration, nn.setRegistration());
}
项目:hadoop-2.6.0-cdh5.4.3    文件:PBHelper.java   
public static NamenodeCommandProto convert(NamenodeCommand cmd) {
  if (cmd instanceof CheckpointCommand) {
    return NamenodeCommandProto.newBuilder().setAction(cmd.getAction())
        .setType(NamenodeCommandProto.Type.CheckPointCommand)
        .setCheckpointCmd(convert((CheckpointCommand) cmd)).build();
  }
  return NamenodeCommandProto.newBuilder()
      .setType(NamenodeCommandProto.Type.NamenodeCommand)
      .setAction(cmd.getAction()).build();
}
项目:hadoop-2.6.0-cdh5.4.3    文件:PBHelper.java   
public static NamenodeCommand convert(NamenodeCommandProto cmd) {
  if (cmd == null) return null;
  switch (cmd.getType()) {
  case CheckPointCommand:
    CheckpointCommandProto chkPt = cmd.getCheckpointCmd();
    return new CheckpointCommand(PBHelper.convert(chkPt.getSignature()),
        chkPt.getNeedToReturnImage());
  default:
    return new NamenodeCommand(cmd.getAction());
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:NamenodeProtocolServerSideTranslatorPB.java   
@Override
public StartCheckpointResponseProto startCheckpoint(RpcController unused,
    StartCheckpointRequestProto request) throws ServiceException {
  NamenodeCommand cmd;
  try {
    cmd = impl.startCheckpoint(PBHelper.convert(request.getRegistration()));
  } catch (IOException e) {
    throw new ServiceException(e);
  }
  return StartCheckpointResponseProto.newBuilder()
      .setCommand(PBHelper.convert(cmd)).build();
}
项目:hadoop-2.6.0-cdh5.4.3    文件:NamenodeProtocolTranslatorPB.java   
@Override
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  StartCheckpointRequestProto req = StartCheckpointRequestProto.newBuilder()
      .setRegistration(PBHelper.convert(registration)).build();
  NamenodeCommandProto cmd;
  try {
    cmd = rpcProxy.startCheckpoint(NULL_CONTROLLER, req).getCommand();
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
  return PBHelper.convert(cmd);
}
项目:hadoop-plus    文件:FSImage.java   
/**
 * Start checkpoint.
 * <p>
 * If backup storage contains image that is newer than or incompatible with 
 * what the active name-node has, then the backup node should shutdown.<br>
 * If the backup image is older than the active one then it should 
 * be discarded and downloaded from the active node.<br>
 * If the images are the same then the backup image will be used as current.
 * 
 * @param bnReg the backup node registration.
 * @param nnReg this (active) name-node registration.
 * @return {@link NamenodeCommand} if backup node should shutdown or
 * {@link CheckpointCommand} prescribing what backup node should 
 *         do with its image.
 * @throws IOException
 */
NamenodeCommand startCheckpoint(NamenodeRegistration bnReg, // backup node
                                NamenodeRegistration nnReg) // active name-node
throws IOException {
  LOG.info("Start checkpoint at txid " + getEditLog().getLastWrittenTxId());
  String msg = null;
  // Verify that checkpoint is allowed
  if(bnReg.getNamespaceID() != storage.getNamespaceID())
    msg = "Name node " + bnReg.getAddress()
          + " has incompatible namespace id: " + bnReg.getNamespaceID()
          + " expected: " + storage.getNamespaceID();
  else if(bnReg.isRole(NamenodeRole.NAMENODE))
    msg = "Name node " + bnReg.getAddress()
          + " role " + bnReg.getRole() + ": checkpoint is not allowed.";
  else if(bnReg.getLayoutVersion() < storage.getLayoutVersion()
      || (bnReg.getLayoutVersion() == storage.getLayoutVersion()
          && bnReg.getCTime() > storage.getCTime()))
    // remote node has newer image age
    msg = "Name node " + bnReg.getAddress()
          + " has newer image layout version: LV = " +bnReg.getLayoutVersion()
          + " cTime = " + bnReg.getCTime()
          + ". Current version: LV = " + storage.getLayoutVersion()
          + " cTime = " + storage.getCTime();
  if(msg != null) {
    LOG.error(msg);
    return new NamenodeCommand(NamenodeProtocol.ACT_SHUTDOWN);
  }
  boolean needToReturnImg = true;
  if(storage.getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
    // do not return image if there are no image directories
    needToReturnImg = false;
  CheckpointSignature sig = rollEditLog();
  return new CheckpointCommand(sig, needToReturnImg);
}
项目:hadoop-plus    文件:NameNodeRpcServer.java   
@Override // NamenodeProtocol
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
throws IOException {
  namesystem.checkSuperuserPrivilege();
  verifyRequest(registration);
  if(!nn.isRole(NamenodeRole.NAMENODE))
    throw new IOException("Only an ACTIVE node can invoke startCheckpoint.");
  return namesystem.startCheckpoint(registration, nn.setRegistration());
}
项目:hadoop-plus    文件:PBHelper.java   
public static NamenodeCommandProto convert(NamenodeCommand cmd) {
  if (cmd instanceof CheckpointCommand) {
    return NamenodeCommandProto.newBuilder().setAction(cmd.getAction())
        .setType(NamenodeCommandProto.Type.CheckPointCommand)
        .setCheckpointCmd(convert((CheckpointCommand) cmd)).build();
  }
  return NamenodeCommandProto.newBuilder()
      .setType(NamenodeCommandProto.Type.NamenodeCommand)
      .setAction(cmd.getAction()).build();
}
项目:hadoop-plus    文件:PBHelper.java   
public static NamenodeCommand convert(NamenodeCommandProto cmd) {
  if (cmd == null) return null;
  switch (cmd.getType()) {
  case CheckPointCommand:
    CheckpointCommandProto chkPt = cmd.getCheckpointCmd();
    return new CheckpointCommand(PBHelper.convert(chkPt.getSignature()),
        chkPt.getNeedToReturnImage());
  default:
    return new NamenodeCommand(cmd.getAction());
  }
}
项目:hadoop-plus    文件:NamenodeProtocolServerSideTranslatorPB.java   
@Override
public StartCheckpointResponseProto startCheckpoint(RpcController unused,
    StartCheckpointRequestProto request) throws ServiceException {
  NamenodeCommand cmd;
  try {
    cmd = impl.startCheckpoint(PBHelper.convert(request.getRegistration()));
  } catch (IOException e) {
    throw new ServiceException(e);
  }
  return StartCheckpointResponseProto.newBuilder()
      .setCommand(PBHelper.convert(cmd)).build();
}
项目:hadoop-plus    文件:NamenodeProtocolTranslatorPB.java   
@Override
public NamenodeCommand startCheckpoint(NamenodeRegistration registration)
    throws IOException {
  StartCheckpointRequestProto req = StartCheckpointRequestProto.newBuilder()
      .setRegistration(PBHelper.convert(registration)).build();
  NamenodeCommandProto cmd;
  try {
    cmd = rpcProxy.startCheckpoint(NULL_CONTROLLER, req).getCommand();
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
  return PBHelper.convert(cmd);
}
项目:FlexMap    文件:FSImage.java   
/**
 * Start checkpoint.
 * <p>
 * If backup storage contains image that is newer than or incompatible with 
 * what the active name-node has, then the backup node should shutdown.<br>
 * If the backup image is older than the active one then it should 
 * be discarded and downloaded from the active node.<br>
 * If the images are the same then the backup image will be used as current.
 * 
 * @param bnReg the backup node registration.
 * @param nnReg this (active) name-node registration.
 * @return {@link NamenodeCommand} if backup node should shutdown or
 * {@link CheckpointCommand} prescribing what backup node should 
 *         do with its image.
 * @throws IOException
 */
NamenodeCommand startCheckpoint(NamenodeRegistration bnReg, // backup node
                                NamenodeRegistration nnReg) // active name-node
throws IOException {
  LOG.info("Start checkpoint at txid " + getEditLog().getLastWrittenTxId());
  String msg = null;
  // Verify that checkpoint is allowed
  if(bnReg.getNamespaceID() != storage.getNamespaceID())
    msg = "Name node " + bnReg.getAddress()
          + " has incompatible namespace id: " + bnReg.getNamespaceID()
          + " expected: " + storage.getNamespaceID();
  else if(bnReg.isRole(NamenodeRole.NAMENODE))
    msg = "Name node " + bnReg.getAddress()
          + " role " + bnReg.getRole() + ": checkpoint is not allowed.";
  else if(bnReg.getLayoutVersion() < storage.getLayoutVersion()
      || (bnReg.getLayoutVersion() == storage.getLayoutVersion()
          && bnReg.getCTime() > storage.getCTime()))
    // remote node has newer image age
    msg = "Name node " + bnReg.getAddress()
          + " has newer image layout version: LV = " +bnReg.getLayoutVersion()
          + " cTime = " + bnReg.getCTime()
          + ". Current version: LV = " + storage.getLayoutVersion()
          + " cTime = " + storage.getCTime();
  if(msg != null) {
    LOG.error(msg);
    return new NamenodeCommand(NamenodeProtocol.ACT_SHUTDOWN);
  }
  boolean needToReturnImg = true;
  if(storage.getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
    // do not return image if there are no image directories
    needToReturnImg = false;
  CheckpointSignature sig = rollEditLog();
  return new CheckpointCommand(sig, needToReturnImg);
}