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


Java NameNodeAdapter.abortEditLogs方法代码示例

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


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

示例1: testComplexFailoverIntoSafemode

import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter; //导入方法依赖的package包/类
/**
 * Set up a namesystem with several edits, both deletions and
 * additions, and failover to a new NN while that NN is in
 * safemode. Ensure that it will exit safemode.
 */
@Test
public void testComplexFailoverIntoSafemode() throws Exception {
  banner("Starting with NN0 active and NN1 standby, creating some blocks");
  DFSTestUtil.createFile(fs, new Path("/test"), 3*BLOCK_SIZE, (short) 3, 1L);
  // Roll edit log so that, when the SBN restarts, it will load
  // the namespace during startup and enter safemode.
  nn0.getRpcServer().rollEditLog();

  banner("Creating some blocks that won't be in the edit log");
  DFSTestUtil.createFile(fs, new Path("/test2"), 5*BLOCK_SIZE, (short) 3, 1L);
  
  banner("Deleting the original blocks");
  fs.delete(new Path("/test"), true);
  
  banner("Restarting standby");
  restartStandby();

  // We expect it to be on its way out of safemode, since all of the blocks
  // from the edit log have been reported.
  assertSafeMode(nn1, 3, 3, 3, 0);
  
  // Initiate a failover into it while it's in safemode
  banner("Initiating a failover into NN1 in safemode");
  NameNodeAdapter.abortEditLogs(nn0);
  cluster.transitionToActive(1);

  assertSafeMode(nn1, 5, 5, 3, 0);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:34,代码来源:TestHASafeMode.java

示例2: testDnFencing

import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter; //导入方法依赖的package包/类
@Test
public void testDnFencing() throws Exception {
  // Create a file with replication level 3.
  DFSTestUtil.createFile(fs, TEST_FILE_PATH, 30*SMALL_BLOCK, (short)3, 1L);
  ExtendedBlock block = DFSTestUtil.getFirstBlock(fs, TEST_FILE_PATH);
  
  // Drop its replication count to 1, so it becomes over-replicated.
  // Then compute the invalidation of the extra blocks and trigger
  // heartbeats so the invalidations are flushed to the DNs.
  nn1.getRpcServer().setReplication(TEST_FILE, (short) 1);
  BlockManagerTestUtil.computeInvalidationWork(
      nn1.getNamesystem().getBlockManager());
  cluster.triggerHeartbeats();
  
  // Transition nn2 to active even though nn1 still thinks it's active.
  banner("Failing to NN2 but let NN1 continue to think it's active");
  NameNodeAdapter.abortEditLogs(nn1);
  NameNodeAdapter.enterSafeMode(nn1, false);
  cluster.transitionToActive(1);
  
  // Check that the standby picked up the replication change.
  assertEquals(1,
      nn2.getRpcServer().getFileInfo(TEST_FILE).getReplication());

  // Dump some info for debugging purposes.
  banner("NN2 Metadata immediately after failover");
  doMetasave(nn2);
  
  banner("Triggering heartbeats and block reports so that fencing is completed");
  cluster.triggerHeartbeats();
  cluster.triggerBlockReports();
  
  banner("Metadata after nodes have all block-reported");
  doMetasave(nn2);

  // Force a rescan of postponedMisreplicatedBlocks.
  BlockManager nn2BM = nn2.getNamesystem().getBlockManager();
  BlockManagerTestUtil.checkHeartbeat(nn2BM);
  BlockManagerTestUtil.rescanPostponedMisreplicatedBlocks(nn2BM);

  // The blocks should no longer be postponed.
  assertEquals(0, nn2.getNamesystem().getPostponedMisreplicatedBlocks());
  
  // Wait for NN2 to enact its deletions (replication monitor has to run, etc)
  BlockManagerTestUtil.computeInvalidationWork(
      nn2.getNamesystem().getBlockManager());
  cluster.triggerHeartbeats();
  HATestUtil.waitForDNDeletions(cluster);
  cluster.triggerDeletionReports();
  assertEquals(0, nn2.getNamesystem().getUnderReplicatedBlocks());
  assertEquals(0, nn2.getNamesystem().getPendingReplicationBlocks());
  
  banner("Making sure the file is still readable");
  FileSystem fs2 = cluster.getFileSystem(1);
  DFSTestUtil.readFile(fs2, TEST_FILE_PATH);

  banner("Waiting for the actual block files to get deleted from DNs.");
  waitForTrueReplication(cluster, block, 1);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:60,代码来源:TestDNFencing.java

示例3: testHANNRestartAfterSnapshotDeletion

import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter; //导入方法依赖的package包/类
@Test(timeout = 60000)
public void testHANNRestartAfterSnapshotDeletion() throws Exception {
  hdfs.close();
  cluster.shutdown();
  conf = new Configuration();
  cluster = new MiniDFSCluster.Builder(conf)
      .nnTopology(MiniDFSNNTopology.simpleHATopology()).numDataNodes(1)
      .build();
  cluster.transitionToActive(0);
  // stop the standby namenode
  NameNode snn = cluster.getNameNode(1);
  snn.stop();

  hdfs = (DistributedFileSystem) HATestUtil
      .configureFailoverFs(cluster, conf);
  Path dir = new Path("/dir");
  Path subDir = new Path(dir, "sub");
  hdfs.mkdirs(dir);
  hdfs.allowSnapshot(dir);
  for (int i = 0; i < 5; i++) {
    DFSTestUtil.createFile(hdfs, new Path(subDir, "" + i), 100, (short) 1,
        1024L);
  }

  // take snapshot
  hdfs.createSnapshot(dir, "s0");

  // delete the subdir
  hdfs.delete(subDir, true);

  // roll the edit log
  NameNode ann = cluster.getNameNode(0);
  ann.getRpcServer().rollEditLog();

  hdfs.deleteSnapshot(dir, "s0");
  // wait for the blocks deletion at namenode
  Thread.sleep(2000);

  NameNodeAdapter.abortEditLogs(ann);
  cluster.restartNameNode(0, false);
  cluster.transitionToActive(0);

  // wait till the cluster becomes active
  cluster.waitClusterUp();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:46,代码来源:TestSnapshotDeletion.java


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