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


Java NameNodeAdapter.spyOnFsLock方法代码示例

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


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

示例1: testGetBlockLocationsOnlyUsesReadLock

import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter; //导入方法依赖的package包/类
/**
 * Test that when access time updates are not needed, the FSNamesystem
 * write lock is not taken by getBlockLocations.
 * Regression test for HDFS-3981.
 */
@Test(timeout=60000)
public void testGetBlockLocationsOnlyUsesReadLock() throws IOException {
  Configuration conf = new HdfsConfiguration();
  conf.setInt(DFSConfigKeys.DFS_NAMENODE_ACCESSTIME_PRECISION_KEY, 100*1000);
  MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf)
    .numDataNodes(0)
    .build();
  ReentrantReadWriteLock spyLock = NameNodeAdapter.spyOnFsLock(cluster.getNamesystem());
  try {
    // Create empty file in the FSN.
    Path p = new Path("/empty-file");
    DFSTestUtil.createFile(cluster.getFileSystem(), p, 0, (short)1, 0L);
    
    // getBlockLocations() should not need the write lock, since we just created
    // the file (and thus its access time is already within the 100-second
    // accesstime precision configured above). 
    MockitoUtil.doThrowWhenCallStackMatches(
        new AssertionError("Should not need write lock"),
        ".*getBlockLocations.*")
        .when(spyLock).writeLock();
    cluster.getFileSystem().getFileBlockLocations(p, 0, 100);
  } finally {
    cluster.shutdown();
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:31,代码来源:TestSetTimes.java

示例2: testTransitionSynchronization

import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter; //导入方法依赖的package包/类
/**
 * Regression test for HDFS-2693: when doing state transitions, we need to
 * lock the FSNamesystem so that we don't end up doing any writes while it's
 * "in between" states.
 * This test case starts up several client threads which do mutation operations
 * while flipping a NN back and forth from active to standby.
 */
@Test(timeout=120000)
public void testTransitionSynchronization() throws Exception {
  Configuration conf = new Configuration();
  final MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf)
    .nnTopology(MiniDFSNNTopology.simpleHATopology())
    .numDataNodes(0)
    .build();
  try {
    cluster.waitActive();
    ReentrantReadWriteLock spyLock = NameNodeAdapter.spyOnFsLock(
        cluster.getNameNode(0).getNamesystem());
    Mockito.doAnswer(new GenericTestUtils.SleepAnswer(50))
      .when(spyLock).writeLock();
    
    final FileSystem fs = HATestUtil.configureFailoverFs(
        cluster, conf);
    
    TestContext ctx = new TestContext();
    for (int i = 0; i < 50; i++) {
      final int finalI = i;
      ctx.addThread(new RepeatingTestThread(ctx) {
        @Override
        public void doAnAction() throws Exception {
          Path p = new Path("/test-" + finalI);
          fs.mkdirs(p);
          fs.delete(p, true);
        }
      });
    }
    
    ctx.addThread(new RepeatingTestThread(ctx) {
      @Override
      public void doAnAction() throws Exception {
        cluster.transitionToStandby(0);
        Thread.sleep(50);
        cluster.transitionToActive(0);
      }
    });
    ctx.startThreads();
    ctx.waitFor(20000);
    ctx.stop();
  } finally {
    cluster.shutdown();
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:53,代码来源:TestHAStateTransitions.java


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