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


Java NamenodeRegistration.isRole方法代码示例

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


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

示例1: registerBackupNode

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * Create (or find if already exists) an edit output stream, which
 * streams journal records (edits) to the specified backup node.<br>
 * 
 * The new BackupNode will start receiving edits the next time this
 * NameNode's logs roll.
 * 
 * @param bnReg the backup node registration information.
 * @param nnReg this (active) name-node registration.
 * @throws IOException
 */
synchronized void registerBackupNode(
    NamenodeRegistration bnReg, // backup node
    NamenodeRegistration nnReg) // active name-node
throws IOException {
  if(bnReg.isRole(NamenodeRole.CHECKPOINT))
    return; // checkpoint node does not stream edits
  
  JournalManager jas = findBackupJournal(bnReg);
  if (jas != null) {
    // already registered
    LOG.info("Backup node " + bnReg + " re-registers");
    return;
  }
  
  LOG.info("Registering new backup node: " + bnReg);
  BackupJournalManager bjm = new BackupJournalManager(bnReg, nnReg);
  synchronized(journalSetLock) {
    journalSet.add(bjm, false);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:32,代码来源:FSEditLog.java

示例2: registerBackupNode

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * Create (or find if already exists) an edit output stream, which
 * streams journal records (edits) to the specified backup node.<br>
 * 
 * The new BackupNode will start receiving edits the next time this
 * NameNode's logs roll.
 * 
 * @param bnReg the backup node registration information.
 * @param nnReg this (active) name-node registration.
 * @throws IOException
 */
synchronized void registerBackupNode(
    NamenodeRegistration bnReg, // backup node
    NamenodeRegistration nnReg) // active name-node
throws IOException {
  if(bnReg.isRole(NamenodeRole.CHECKPOINT))
    return; // checkpoint node does not stream edits
  
  JournalManager jas = findBackupJournal(bnReg);
  if (jas != null) {
    // already registered
    LOG.info("Backup node " + bnReg + " re-registers");
    return;
  }
  
  LOG.info("Registering new backup node: " + bnReg);
  BackupJournalManager bjm = new BackupJournalManager(bnReg, nnReg);
  journalSet.add(bjm, true);
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:30,代码来源:FSEditLog.java

示例3: logJSpoolStart

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * Create (or find if already exists) an edit output stream, which
 * streams journal records (edits) to the specified backup node.<br>
 * Send a record, prescribing to start journal spool.<br>
 * This should be sent via regular stream of journal records so that
 * the backup node new exactly after which record it should start spooling.
 * 
 * @param bnReg the backup node registration information.
 * @param nnReg this (active) name-node registration.
 * @throws IOException
 */
synchronized void logJSpoolStart(NamenodeRegistration bnReg, // backup node
                    NamenodeRegistration nnReg) // active name-node
throws IOException {
  if(bnReg.isRole(NamenodeRole.CHECKPOINT))
    return; // checkpoint node does not stream edits
  if(editStreams == null)
    editStreams = new ArrayList<EditLogOutputStream>();
  EditLogOutputStream boStream = null;
  for(EditLogOutputStream eStream : editStreams) {
    if(eStream.getName().equals(bnReg.getAddress())) {
      boStream = eStream; // already there
      break;
    }
  }
  if(boStream == null) {
    boStream = new EditLogBackupOutputStream(bnReg, nnReg);
    editStreams.add(boStream);
  }
  logEdit(Ops.OP_JSPOOL_START, (Writable[])null);
}
 
开发者ID:cumulusyebl,项目名称:cumulus,代码行数:32,代码来源:FSEditLog.java

示例4: startCheckpoint

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * 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);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:50,代码来源:FSImage.java

示例5: startCheckpoint

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * 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);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:51,代码来源:FSImage.java

示例6: registerWith

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * Register this backup node with the active name-node.
 * @param nsInfo
 * @throws IOException
 */
private void registerWith(NamespaceInfo nsInfo) throws IOException {
  BackupStorage bnImage = (BackupStorage)getFSImage();
  // verify namespaceID
  if(bnImage.getNamespaceID() == 0) // new backup storage
    bnImage.setStorageInfo(nsInfo);
  else if(bnImage.getNamespaceID() != nsInfo.getNamespaceID())
    throw new IOException("Incompatible namespaceIDs"
        + ": active node namespaceID = " + nsInfo.getNamespaceID() 
        + "; backup node namespaceID = " + bnImage.getNamespaceID());

  setRegistration();
  NamenodeRegistration nnReg = null;
  while(!isStopRequested()) {
    try {
      nnReg = namenode.register(getRegistration());
      break;
    } catch(SocketTimeoutException e) {  // name-node is busy
      LOG.info("Problem connecting to name-node: " + nnRpcAddress);
      try {
        Thread.sleep(1000);
      } catch (InterruptedException ie) {}
    }
  }

  String msg = null;
  if(nnReg == null) // consider as a rejection
    msg = "Registration rejected by " + nnRpcAddress;
  else if(!nnReg.isRole(NamenodeRole.ACTIVE)) {
    msg = "Name-node " + nnRpcAddress + " is not active";
  }
  if(msg != null) {
    msg += ". Shutting down.";
    LOG.error(msg);
    throw new IOException(msg); // stop the node
  }
  nnRpcAddress = nnReg.getAddress();
}
 
开发者ID:cumulusyebl,项目名称:cumulus,代码行数:43,代码来源:BackupNode.java

示例7: registerWith

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * Register this backup node with the active name-node.
 * @param nsInfo namespace information
 * @throws IOException
 */
private void registerWith(NamespaceInfo nsInfo) throws IOException {
  BackupImage bnImage = (BackupImage)getFSImage();
  NNStorage storage = bnImage.getStorage();
  // verify namespaceID
  if (storage.getNamespaceID() == 0) { // new backup storage
    storage.setStorageInfo(nsInfo);
    storage.setBlockPoolID(nsInfo.getBlockPoolID());
    storage.setClusterID(nsInfo.getClusterID());
  } else {
    nsInfo.validateStorage(storage);
  }
  bnImage.initEditLog(StartupOption.REGULAR);
  setRegistration();
  NamenodeRegistration nnReg = null;
  while(!isStopRequested()) {
    try {
      nnReg = namenode.registerSubordinateNamenode(getRegistration());
      break;
    } catch(SocketTimeoutException e) {  // name-node is busy
      LOG.info("Problem connecting to name-node: " + nnRpcAddress);
      try {
        Thread.sleep(1000);
      } catch (InterruptedException ie) {
        LOG.warn("Encountered exception ", e);
      }
    }
  }

  String msg = null;
  if(nnReg == null) // consider as a rejection
    msg = "Registration rejected by " + nnRpcAddress;
  else if(!nnReg.isRole(NamenodeRole.NAMENODE)) {
    msg = "Name-node " + nnRpcAddress + " is not active";
  }
  if(msg != null) {
    msg += ". Shutting down.";
    LOG.error(msg);
    throw new IOException(msg); // stop the node
  }
  nnRpcAddress = nnReg.getAddress();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:47,代码来源:BackupNode.java

示例8: registerWith

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * Register this backup node with the active name-node.
 * @param nsInfo
 * @throws IOException
 */
private void registerWith(NamespaceInfo nsInfo) throws IOException {
  BackupImage bnImage = (BackupImage)getFSImage();
  NNStorage storage = bnImage.getStorage();
  // verify namespaceID
  if (storage.getNamespaceID() == 0) { // new backup storage
    storage.setStorageInfo(nsInfo);
    storage.setBlockPoolID(nsInfo.getBlockPoolID());
    storage.setClusterID(nsInfo.getClusterID());
  } else {
    nsInfo.validateStorage(storage);
  }
  bnImage.initEditLog();
  setRegistration();
  NamenodeRegistration nnReg = null;
  while(!isStopRequested()) {
    try {
      nnReg = namenode.registerSubordinateNamenode(getRegistration());
      break;
    } catch(SocketTimeoutException e) {  // name-node is busy
      LOG.info("Problem connecting to name-node: " + nnRpcAddress);
      try {
        Thread.sleep(1000);
      } catch (InterruptedException ie) {
        LOG.warn("Encountered exception ", e);
      }
    }
  }

  String msg = null;
  if(nnReg == null) // consider as a rejection
    msg = "Registration rejected by " + nnRpcAddress;
  else if(!nnReg.isRole(NamenodeRole.NAMENODE)) {
    msg = "Name-node " + nnRpcAddress + " is not active";
  }
  if(msg != null) {
    msg += ". Shutting down.";
    LOG.error(msg);
    throw new IOException(msg); // stop the node
  }
  nnRpcAddress = nnReg.getAddress();
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:47,代码来源:BackupNode.java

示例9: registerWith

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * Register this backup node with the active name-node.
 * @param nsInfo
 * @throws IOException
 */
private void registerWith(NamespaceInfo nsInfo) throws IOException {
  BackupImage bnImage = (BackupImage)getFSImage();
  NNStorage storage = bnImage.getStorage();
  // verify namespaceID
  if (storage.getNamespaceID() == 0) { // new backup storage
    storage.setStorageInfo(nsInfo);
    storage.setBlockPoolID(nsInfo.getBlockPoolID());
    storage.setClusterID(nsInfo.getClusterID());
  } else {
    nsInfo.validateStorage(storage);
  }
  bnImage.initEditLog(StartupOption.REGULAR);
  setRegistration();
  NamenodeRegistration nnReg = null;
  while(!isStopRequested()) {
    try {
      nnReg = namenode.registerSubordinateNamenode(getRegistration());
      break;
    } catch(SocketTimeoutException e) {  // name-node is busy
      LOG.info("Problem connecting to name-node: " + nnRpcAddress);
      try {
        Thread.sleep(1000);
      } catch (InterruptedException ie) {
        LOG.warn("Encountered exception ", e);
      }
    }
  }

  String msg = null;
  if(nnReg == null) // consider as a rejection
    msg = "Registration rejected by " + nnRpcAddress;
  else if(!nnReg.isRole(NamenodeRole.NAMENODE)) {
    msg = "Name-node " + nnRpcAddress + " is not active";
  }
  if(msg != null) {
    msg += ". Shutting down.";
    LOG.error(msg);
    throw new IOException(msg); // stop the node
  }
  nnRpcAddress = nnReg.getAddress();
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:47,代码来源:BackupNode.java

示例10: startCheckpoint

import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; //导入方法依赖的package包/类
/**
 * 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 {
  String msg = null;
  // Verify that checkpoint is allowed
  if(bnReg.getNamespaceID() != this.getNamespaceID())
    msg = "Name node " + bnReg.getAddress()
          + " has incompatible namespace id: " + bnReg.getNamespaceID()
          + " expected: " + getNamespaceID();
  else if(bnReg.isRole(NamenodeRole.ACTIVE))
    msg = "Name node " + bnReg.getAddress()
          + " role " + bnReg.getRole() + ": checkpoint is not allowed.";
  else if(bnReg.getLayoutVersion() < this.getLayoutVersion()
      || (bnReg.getLayoutVersion() == this.getLayoutVersion()
          && bnReg.getCTime() > this.getCTime())
      || (bnReg.getLayoutVersion() == this.getLayoutVersion()
          && bnReg.getCTime() == this.getCTime()
          && bnReg.getCheckpointTime() > this.checkpointTime))
    // remote node has newer image age
    msg = "Name node " + bnReg.getAddress()
          + " has newer image layout version: LV = " +bnReg.getLayoutVersion()
          + " cTime = " + bnReg.getCTime()
          + " checkpointTime = " + bnReg.getCheckpointTime()
          + ". Current version: LV = " + getLayoutVersion()
          + " cTime = " + getCTime()
          + " checkpointTime = " + checkpointTime;
  if(msg != null) {
    LOG.error(msg);
    return new NamenodeCommand(NamenodeProtocol.ACT_SHUTDOWN);
  }
  boolean isImgObsolete = true;
  if(bnReg.getLayoutVersion() == this.getLayoutVersion()
      && bnReg.getCTime() == this.getCTime()
      && bnReg.getCheckpointTime() == this.checkpointTime)
    isImgObsolete = false;
  boolean needToReturnImg = true;
  if(getNumStorageDirs(NameNodeDirType.IMAGE) == 0)
    // do not return image if there are no image directories
    needToReturnImg = false;
  CheckpointSignature sig = rollEditLog();
  getEditLog().logJSpoolStart(bnReg, nnReg);
  return new CheckpointCommand(sig, isImgObsolete, needToReturnImg);
}
 
开发者ID:cumulusyebl,项目名称:cumulus,代码行数:60,代码来源:FSImage.java


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