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


Java SafeModeAction类代码示例

本文整理汇总了Java中org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction的典型用法代码示例。如果您正苦于以下问题:Java SafeModeAction类的具体用法?Java SafeModeAction怎么用?Java SafeModeAction使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


SafeModeAction类属于org.apache.hadoop.hdfs.protocol.HdfsConstants包,在下文中一共展示了SafeModeAction类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setSafeMode

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
boolean setSafeMode(SafeModeAction action) throws IOException {
  if (action != SafeModeAction.SAFEMODE_GET) {
    checkSuperuserPrivilege();
    switch(action) {
    case SAFEMODE_LEAVE: // leave safe mode
      leaveSafeMode();
      break;
    case SAFEMODE_ENTER: // enter safe mode
      enterSafeMode(false);
      break;
    default:
      LOG.error("Unexpected safe mode action");
    }
  }
  return isInSafeMode();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:17,代码来源:FSNamesystem.java

示例2: startRollingUpgradeInternalForNonHA

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
/**
 * Update internal state to indicate that a rolling upgrade is in progress for
 * non-HA setup. This requires the namesystem is in SafeMode and after doing a
 * checkpoint for rollback the namesystem will quit the safemode automatically 
 */
private void startRollingUpgradeInternalForNonHA(long startTime)
    throws IOException {
  Preconditions.checkState(!haEnabled);
  if (!isInSafeMode()) {
    throw new IOException("Safe mode should be turned ON "
        + "in order to create namespace image.");
  }
  checkRollingUpgrade("start rolling upgrade");
  getFSImage().checkUpgrade();
  // in non-HA setup, we do an extra checkpoint to generate a rollback image
  getFSImage().saveNamespace(this, NameNodeFile.IMAGE_ROLLBACK, null);
  LOG.info("Successfully saved namespace for preparing rolling upgrade.");

  // leave SafeMode automatically
  setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
  setRollingUpgradeInfo(true, startTime);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:23,代码来源:FSNamesystem.java

示例3: testRejectNewFsImage

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
/**
 * Ensure that during downgrade the NN fails to load a fsimage with newer
 * format.
 */
@Test(expected = IncorrectVersionException.class)
public void testRejectNewFsImage() throws IOException {
  final Configuration conf = new Configuration();
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
    cluster.waitActive();
    DistributedFileSystem fs = cluster.getFileSystem();
    fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    fs.saveNamespace();
    fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
    NNStorage storage = spy(cluster.getNameNode().getFSImage().getStorage());
    int futureVersion = NameNodeLayoutVersion.CURRENT_LAYOUT_VERSION - 1;
    doReturn(futureVersion).when(storage).getServiceLayoutVersion();
    storage.writeAll();
    cluster.restartNameNode(0, true, "-rollingUpgrade", "downgrade");
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:27,代码来源:TestRollingUpgradeDowngrade.java

示例4: startRollingUpgrade

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
private static void startRollingUpgrade(Path foo, Path bar,
    Path file, byte[] data,
    MiniDFSCluster cluster) throws IOException {
  final DistributedFileSystem dfs = cluster.getFileSystem();

  //start rolling upgrade
  dfs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
  dfs.rollingUpgrade(RollingUpgradeAction.PREPARE);
  dfs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);

  dfs.mkdirs(bar);
  Assert.assertTrue(dfs.exists(foo));
  Assert.assertTrue(dfs.exists(bar));

  //truncate a file
  final int newLength = DFSUtil.getRandom().nextInt(data.length - 1) + 1;
  dfs.truncate(file, newLength);
  TestFileTruncate.checkBlockRecovery(file, dfs);
  AppendTestUtil.checkFullFile(dfs, file, newLength, data);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:21,代码来源:TestRollingUpgrade.java

示例5: testQueryAfterRestart

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
@Test (timeout = 300000)
public void testQueryAfterRestart() throws IOException, InterruptedException {
  final Configuration conf = new Configuration();
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
    cluster.waitActive();
    DistributedFileSystem dfs = cluster.getFileSystem();

    dfs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    // start rolling upgrade
    dfs.rollingUpgrade(RollingUpgradeAction.PREPARE);
    queryForPreparation(dfs);
    dfs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    dfs.saveNamespace();
    dfs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);

    cluster.restartNameNodes();
    dfs.rollingUpgrade(RollingUpgradeAction.QUERY);
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:26,代码来源:TestRollingUpgrade.java

示例6: testSaveNamespaceWithRenamedLease

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
/**
 * Test for save namespace should succeed when parent directory renamed with
 * open lease and destination directory exist. 
 * This test is a regression for HDFS-2827
 */
@Test
public void testSaveNamespaceWithRenamedLease() throws Exception {
  MiniDFSCluster cluster = new MiniDFSCluster.Builder(new Configuration())
      .numDataNodes(1).build();
  cluster.waitActive();
  DistributedFileSystem fs = (DistributedFileSystem) cluster.getFileSystem();
  OutputStream out = null;
  try {
    fs.mkdirs(new Path("/test-target"));
    out = fs.create(new Path("/test-source/foo")); // don't close
    fs.rename(new Path("/test-source/"), new Path("/test-target/"));

    fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    cluster.getNameNodeRpc().saveNamespace();
    fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
  } finally {
    IOUtils.cleanup(LOG, out, fs);
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:28,代码来源:TestSaveNamespace.java

示例7: testSaveNamespaceWithDanglingLease

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
@Test (timeout=30000)
public void testSaveNamespaceWithDanglingLease() throws Exception {
  MiniDFSCluster cluster = new MiniDFSCluster.Builder(new Configuration())
      .numDataNodes(1).build();
  cluster.waitActive();
  DistributedFileSystem fs = cluster.getFileSystem();
  try {
    cluster.getNamesystem().leaseManager.addLease("me", "/non-existent");      
    fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    cluster.getNameNodeRpc().saveNamespace();
    fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:18,代码来源:TestSaveNamespace.java

示例8: testCorrectNumberOfBlocksAfterRestart

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
@Test
public void testCorrectNumberOfBlocksAfterRestart() throws IOException {
  final Path foo = new Path("/foo");
  final Path bar = new Path(foo, "bar");
  final Path file = new Path(foo, "file");
  final String snapshotName = "ss0";

  DFSTestUtil.createFile(hdfs, file, BLOCKSIZE, REPLICATION, seed);
  hdfs.mkdirs(bar);
  hdfs.setQuota(foo, Long.MAX_VALUE - 1, Long.MAX_VALUE - 1);
  hdfs.setQuota(bar, Long.MAX_VALUE - 1, Long.MAX_VALUE - 1);
  hdfs.allowSnapshot(foo);

  hdfs.createSnapshot(foo, snapshotName);
  hdfs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
  hdfs.saveNamespace();

  hdfs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
  hdfs.deleteSnapshot(foo, snapshotName);
  hdfs.delete(bar, true);
  hdfs.delete(foo, true);

  long numberOfBlocks = cluster.getNamesystem().getBlocksTotal();
  cluster.restartNameNode(0);
  assertEquals(numberOfBlocks, cluster.getNamesystem().getBlocksTotal());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:27,代码来源:TestSnapshotDeletion.java

示例9: testDigest

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
/**
 * Ensure that the digest written by the saver equals to the digest of the
 * file.
 */
@Test
public void testDigest() throws IOException {
  Configuration conf = new Configuration();
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
    DistributedFileSystem fs = cluster.getFileSystem();
    fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    fs.saveNamespace();
    fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
    File currentDir = FSImageTestUtil.getNameNodeCurrentDirs(cluster, 0).get(
        0);
    File fsimage = FSImageTestUtil.findNewestImageFile(currentDir
        .getAbsolutePath());
    assertEquals(MD5FileUtils.readStoredMd5ForFile(fsimage),
        MD5FileUtils.computeMd5ForFile(fsimage));
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:27,代码来源:TestFSImage.java

示例10: testRejectNewFsImage

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
/**
 * Ensure that restart namenode with downgrade option should throw exception
 * because it has been obsolete.
 */
@Test(expected = IllegalArgumentException.class)
public void testRejectNewFsImage() throws IOException {
  final Configuration conf = new Configuration();
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
    cluster.waitActive();
    DistributedFileSystem fs = cluster.getFileSystem();
    fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    fs.saveNamespace();
    fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
    NNStorage storage = spy(cluster.getNameNode().getFSImage().getStorage());
    int futureVersion = NameNodeLayoutVersion.CURRENT_LAYOUT_VERSION - 1;
    doReturn(futureVersion).when(storage).getServiceLayoutVersion();
    storage.writeAll();
    cluster.restartNameNode(0, true, "-rollingUpgrade", "downgrade");
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:27,代码来源:TestRollingUpgradeDowngrade.java

示例11: startRollingUpgrade

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
private static void startRollingUpgrade(Path foo, Path bar,
    Path file, byte[] data,
    MiniDFSCluster cluster) throws IOException {
  final DistributedFileSystem dfs = cluster.getFileSystem();

  //start rolling upgrade
  dfs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
  dfs.rollingUpgrade(RollingUpgradeAction.PREPARE);
  dfs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);

  dfs.mkdirs(bar);
  Assert.assertTrue(dfs.exists(foo));
  Assert.assertTrue(dfs.exists(bar));

  //truncate a file
  final int newLength = ThreadLocalRandom.current().nextInt(data.length - 1)
      + 1;
  dfs.truncate(file, newLength);
  TestFileTruncate.checkBlockRecovery(file, dfs);
  AppendTestUtil.checkFullFile(dfs, file, newLength, data);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:22,代码来源:TestRollingUpgrade.java

示例12: testSaveNamespaceWithRenamedLease

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
/**
 * Test for save namespace should succeed when parent directory renamed with
 * open lease and destination directory exist. 
 * This test is a regression for HDFS-2827
 */
@Test (timeout=30000)
public void testSaveNamespaceWithRenamedLease() throws Exception {
  MiniDFSCluster cluster = new MiniDFSCluster.Builder(new Configuration())
      .numDataNodes(1).build();
  cluster.waitActive();
  DistributedFileSystem fs = cluster.getFileSystem();
  OutputStream out = null;
  try {
    fs.mkdirs(new Path("/test-target"));
    out = fs.create(new Path("/test-source/foo")); // don't close
    fs.rename(new Path("/test-source/"), new Path("/test-target/"));

    fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    cluster.getNameNodeRpc().saveNamespace(0, 0);
    fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
  } finally {
    IOUtils.cleanup(LOG, out, fs);
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:28,代码来源:TestSaveNamespace.java

示例13: testSaveNamespaceWithDanglingLease

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
@Test (timeout=30000)
public void testSaveNamespaceWithDanglingLease() throws Exception {
  MiniDFSCluster cluster = new MiniDFSCluster.Builder(new Configuration())
      .numDataNodes(1).build();
  cluster.waitActive();
  DistributedFileSystem fs = cluster.getFileSystem();
  try {
    cluster.getNamesystem().leaseManager.addLease("me",
            INodeId.ROOT_INODE_ID + 1);
    fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
    cluster.getNameNodeRpc().saveNamespace(0, 0);
    fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:19,代码来源:TestSaveNamespace.java

示例14: testSnapshotsOnErasureCodingDirAfterNNRestart

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
/**
 * Test verify erasure coding policy is present after restarting the NameNode.
 */
@Test(timeout = 120000)
public void testSnapshotsOnErasureCodingDirAfterNNRestart() throws Exception {
  final Path ecDir = new Path("/ecdir");
  fs.mkdirs(ecDir);
  fs.allowSnapshot(ecDir);

  // set erasure coding policy
  fs.setErasureCodingPolicy(ecDir, sysDefaultPolicy);
  final Path snap1 = fs.createSnapshot(ecDir, "snap1");
  ErasureCodingPolicy ecSnap = fs.getErasureCodingPolicy(snap1);
  assertEquals("Got unexpected erasure coding policy", sysDefaultPolicy,
      ecSnap);

  // save namespace, restart namenode, and check ec policy correctness.
  fs.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
  fs.saveNamespace();
  fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
  cluster.restartNameNode(true);

  ErasureCodingPolicy ecSnap1 = fs.getErasureCodingPolicy(snap1);
  assertEquals("Got unexpected erasure coding policy", sysDefaultPolicy,
      ecSnap1);
  assertEquals("Got unexpected ecSchema", ecSnap.getSchema(),
      ecSnap1.getSchema());
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:29,代码来源:TestErasureCodingPolicyWithSnapshot.java

示例15: initialize

import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; //导入依赖的package包/类
@Override // NameNode
protected void initialize(Configuration conf) throws IOException {
  // Trash is disabled in BackupNameNode,
  // but should be turned back on if it ever becomes active.
  conf.setLong(CommonConfigurationKeys.FS_TRASH_INTERVAL_KEY, 
               CommonConfigurationKeys.FS_TRASH_INTERVAL_DEFAULT);
  NamespaceInfo nsInfo = handshake(conf);
  super.initialize(conf);
  namesystem.setBlockPoolId(nsInfo.getBlockPoolID());

  if (false == namesystem.isInSafeMode()) {
    namesystem.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
  }

  // Backup node should never do lease recovery,
  // therefore lease hard limit should never expire.
  namesystem.leaseManager.setLeasePeriod(
      HdfsConstants.LEASE_SOFTLIMIT_PERIOD, Long.MAX_VALUE);

  // register with the active name-node 
  registerWith(nsInfo);
  // Checkpoint daemon should start after the rpc server started
  runCheckpointDaemon(conf);
  InetSocketAddress addr = getHttpAddress();
  if (addr != null) {
    conf.set(BN_HTTP_ADDRESS_NAME_KEY, NetUtils.getHostPortString(getHttpAddress()));
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:29,代码来源:BackupNode.java


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