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


Java LocalDirsHandlerService.init方法代码示例

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


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

示例1: testDirFailuresOnStartup

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
/**
 * Make a local and log directory inaccessible during initialization
 * and verify those bad directories are recognized and removed from
 * the list of available local and log directories.
 * @throws IOException
 */
@Test
public void testDirFailuresOnStartup() throws IOException {
  Configuration conf = new YarnConfiguration();
  String localDir1 = new File(testDir, "localDir1").getPath();
  String localDir2 = new File(testDir, "localDir2").getPath();
  String logDir1 = new File(testDir, "logDir1").getPath();
  String logDir2 = new File(testDir, "logDir2").getPath();
  conf.set(YarnConfiguration.NM_LOCAL_DIRS, localDir1 + "," + localDir2);
  conf.set(YarnConfiguration.NM_LOG_DIRS, logDir1 + "," + logDir2);

  prepareDirToFail(localDir1);
  prepareDirToFail(logDir2);

  LocalDirsHandlerService dirSvc = new LocalDirsHandlerService();
  dirSvc.init(conf);
  List<String> localDirs = dirSvc.getLocalDirs();
  Assert.assertEquals(1, localDirs.size());
  Assert.assertEquals(new Path(localDir2).toString(), localDirs.get(0));
  List<String> logDirs = dirSvc.getLogDirs();
  Assert.assertEquals(1, logDirs.size());
  Assert.assertEquals(new Path(logDir1).toString(), logDirs.get(0));
}
 
开发者ID:naver,项目名称:hadoop,代码行数:29,代码来源:TestDiskFailures.java

示例2: testLocalizerRunnerException

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test( timeout = 10000)
@SuppressWarnings("unchecked") // mocked generics
public void testLocalizerRunnerException() throws Exception {
  DrainDispatcher dispatcher = new DrainDispatcher();
  dispatcher.init(conf);
  dispatcher.start();
  EventHandler<ApplicationEvent> applicationBus = mock(EventHandler.class);
  dispatcher.register(ApplicationEventType.class, applicationBus);
  EventHandler<ContainerEvent> containerBus = mock(EventHandler.class);
  dispatcher.register(ContainerEventType.class, containerBus);

  ContainerExecutor exec = mock(ContainerExecutor.class);
  LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService();
  LocalDirsHandlerService dirsHandlerSpy = spy(dirsHandler);
  dirsHandlerSpy.init(conf);

  DeletionService delServiceReal = new DeletionService(exec);
  DeletionService delService = spy(delServiceReal);
  delService.init(new Configuration());
  delService.start();

  ResourceLocalizationService rawService =
      new ResourceLocalizationService(dispatcher, exec, delService,
      dirsHandlerSpy, nmContext);
  ResourceLocalizationService spyService = spy(rawService);
  doReturn(mockServer).when(spyService).createServer();
  try {
    spyService.init(conf);
    spyService.start();

    // init application
    final Application app = mock(Application.class);
    final ApplicationId appId =
        BuilderUtils.newApplicationId(314159265358979L, 3);
    when(app.getUser()).thenReturn("user0");
    when(app.getAppId()).thenReturn(appId);
    spyService.handle(new ApplicationLocalizationEvent(
        LocalizationEventType.INIT_APPLICATION_RESOURCES, app));
    dispatcher.await();

    Random r = new Random();
    long seed = r.nextLong();
    System.out.println("SEED: " + seed);
    r.setSeed(seed);
    final Container c = getMockContainer(appId, 42, "user0");
    final LocalResource resource1 = getPrivateMockedResource(r);
    System.out.println("Here 4");
    
    final LocalResourceRequest req1 = new LocalResourceRequest(resource1);
    Map<LocalResourceVisibility, Collection<LocalResourceRequest>> rsrcs =
      new HashMap<LocalResourceVisibility, 
                  Collection<LocalResourceRequest>>();
    List<LocalResourceRequest> privateResourceList =
        new ArrayList<LocalResourceRequest>();
    privateResourceList.add(req1);
    rsrcs.put(LocalResourceVisibility.PRIVATE, privateResourceList);

    final Constructor<?>[] constructors =
        FSError.class.getDeclaredConstructors();
    constructors[0].setAccessible(true);
    FSError fsError =
        (FSError) constructors[0].newInstance(new IOException("Disk Error"));

    Mockito
      .doThrow(fsError)
      .when(dirsHandlerSpy)
      .getLocalPathForWrite(isA(String.class));
    spyService.handle(new ContainerLocalizationRequestEvent(c, rsrcs));
    Thread.sleep(1000);
    dispatcher.await();
    // Verify if ContainerResourceFailedEvent is invoked on FSError
    verify(containerBus).handle(isA(ContainerResourceFailedEvent.class));
  } finally {
    spyService.stop();
    dispatcher.stop();
    delService.stop();
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:79,代码来源:TestResourceLocalizationService.java

示例3: testContainerLogFile

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test(timeout=30000)
public void testContainerLogFile() throws IOException, YarnException {
  File absLogDir = new File("target",
      TestNMWebServer.class.getSimpleName() + "LogDir").getAbsoluteFile();
  String logdirwithFile = absLogDir.toURI().toString();
  Configuration conf = new Configuration();
  conf.set(YarnConfiguration.NM_LOG_DIRS, logdirwithFile);
  conf.setFloat(YarnConfiguration.NM_MAX_PER_DISK_UTILIZATION_PERCENTAGE,
      0.0f);
  LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService();
  dirsHandler.init(conf);
  NMContext nmContext = new NodeManager.NMContext(null, null, dirsHandler,
      new ApplicationACLsManager(conf), new NMNullStateStoreService());
  // Add an application and the corresponding containers
  String user = "nobody";
  long clusterTimeStamp = 1234;
  ApplicationId appId = BuilderUtils.newApplicationId(
      clusterTimeStamp, 1);
  Application app = mock(Application.class);
  when(app.getUser()).thenReturn(user);
  when(app.getAppId()).thenReturn(appId);
  ApplicationAttemptId appAttemptId = BuilderUtils.newApplicationAttemptId(
      appId, 1);
  ContainerId containerId = BuilderUtils.newContainerId(
      appAttemptId, 1);
  nmContext.getApplications().put(appId, app);

  MockContainer container =
      new MockContainer(appAttemptId, new AsyncDispatcher(), conf, user,
          appId, 1);
  container.setState(ContainerState.RUNNING);
  nmContext.getContainers().put(containerId, container);
  File containerLogDir = new File(absLogDir,
      ContainerLaunch.getRelativeContainerLogDir(appId.toString(),
          containerId.toString()));
  containerLogDir.mkdirs();
  String fileName = "fileName";
  File containerLogFile = new File(containerLogDir, fileName);
  containerLogFile.createNewFile();
  File file = ContainerLogsUtils.getContainerLogFile(containerId,
      fileName, user, nmContext);
  Assert.assertEquals(containerLogFile.toURI().toString(),
      file.toURI().toString());
  FileUtil.fullyDelete(absLogDir);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:46,代码来源:TestContainerLogsPage.java

示例4: testLocalizationInit

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test
public void testLocalizationInit() throws Exception {
  conf.set(CommonConfigurationKeys.FS_PERMISSIONS_UMASK_KEY, "077");
  AsyncDispatcher dispatcher = new AsyncDispatcher();
  dispatcher.init(new Configuration());

  ContainerExecutor exec = mock(ContainerExecutor.class);
  DeletionService delService = spy(new DeletionService(exec));
  delService.init(conf);
  delService.start();

  List<Path> localDirs = new ArrayList<Path>();
  String[] sDirs = new String[4];
  for (int i = 0; i < 4; ++i) {
    localDirs.add(lfs.makeQualified(new Path(basedir, i + "")));
    sDirs[i] = localDirs.get(i).toString();
  }
  conf.setStrings(YarnConfiguration.NM_LOCAL_DIRS, sDirs);

  LocalDirsHandlerService diskhandler = new LocalDirsHandlerService();
  diskhandler.init(conf);

  ResourceLocalizationService locService =
    spy(new ResourceLocalizationService(dispatcher, exec, delService,
                                        diskhandler, nmContext));
  doReturn(lfs)
    .when(locService).getLocalFileContext(isA(Configuration.class));
  try {
    dispatcher.start();

    // initialize ResourceLocalizationService
    locService.init(conf);

    final FsPermission defaultPerm = new FsPermission((short)0755);

    // verify directory creation
    for (Path p : localDirs) {
      p = new Path((new URI(p.toString())).getPath());
      Path usercache = new Path(p, ContainerLocalizer.USERCACHE);
      verify(spylfs)
        .mkdir(eq(usercache),
            eq(defaultPerm), eq(true));
      Path publicCache = new Path(p, ContainerLocalizer.FILECACHE);
      verify(spylfs)
        .mkdir(eq(publicCache),
            eq(defaultPerm), eq(true));
      Path nmPriv = new Path(p, ResourceLocalizationService.NM_PRIVATE_DIR);
      verify(spylfs).mkdir(eq(nmPriv),
          eq(ResourceLocalizationService.NM_PRIVATE_PERM), eq(true));
    }
  } finally {
    dispatcher.stop();
    delService.stop();
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:56,代码来源:TestResourceLocalizationService.java

示例5: testDirectoryCleanupOnNewlyCreatedStateStore

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test
public void testDirectoryCleanupOnNewlyCreatedStateStore()
    throws IOException, URISyntaxException {
  conf.set(CommonConfigurationKeys.FS_PERMISSIONS_UMASK_KEY, "077");
  AsyncDispatcher dispatcher = new AsyncDispatcher();
  dispatcher.init(new Configuration());

  ContainerExecutor exec = mock(ContainerExecutor.class);
  DeletionService delService = spy(new DeletionService(exec));
  delService.init(conf);
  delService.start();

  List<Path> localDirs = new ArrayList<Path>();
  String[] sDirs = new String[4];
  for (int i = 0; i < 4; ++i) {
    localDirs.add(lfs.makeQualified(new Path(basedir, i + "")));
    sDirs[i] = localDirs.get(i).toString();
  }
  conf.setStrings(YarnConfiguration.NM_LOCAL_DIRS, sDirs);

  LocalDirsHandlerService diskhandler = new LocalDirsHandlerService();
  diskhandler.init(conf);

  NMStateStoreService nmStateStoreService = mock(NMStateStoreService.class);
  when(nmStateStoreService.canRecover()).thenReturn(true);
  when(nmStateStoreService.isNewlyCreated()).thenReturn(true);

  ResourceLocalizationService locService =
      spy(new ResourceLocalizationService(dispatcher, exec, delService,
          diskhandler,nmContext));
  doReturn(lfs)
      .when(locService).getLocalFileContext(isA(Configuration.class));
  try {
    dispatcher.start();

    // initialize ResourceLocalizationService
    locService.init(conf);

    final FsPermission defaultPerm = new FsPermission((short)0755);

    // verify directory creation
    for (Path p : localDirs) {
      p = new Path((new URI(p.toString())).getPath());
      Path usercache = new Path(p, ContainerLocalizer.USERCACHE);
      verify(spylfs)
          .rename(eq(usercache), any(Path.class), any(Options.Rename.class));
      verify(spylfs)
          .mkdir(eq(usercache),
              eq(defaultPerm), eq(true));
      Path publicCache = new Path(p, ContainerLocalizer.FILECACHE);
      verify(spylfs)
          .rename(eq(usercache), any(Path.class), any(Options.Rename.class));
      verify(spylfs)
          .mkdir(eq(publicCache),
              eq(defaultPerm), eq(true));
      Path nmPriv = new Path(p, ResourceLocalizationService.NM_PRIVATE_DIR);
      verify(spylfs)
          .rename(eq(usercache), any(Path.class), any(Options.Rename.class));
      verify(spylfs).mkdir(eq(nmPriv),
          eq(ResourceLocalizationService.NM_PRIVATE_PERM), eq(true));
    }
  } finally {
    dispatcher.stop();
    delService.stop();
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:67,代码来源:TestResourceLocalizationService.java

示例6: testLocalizationInit

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test
public void testLocalizationInit() throws Exception {
  conf.set(CommonConfigurationKeys.FS_PERMISSIONS_UMASK_KEY, "077");
  AsyncDispatcher dispatcher = new AsyncDispatcher();
  dispatcher.init(new Configuration());

  ContainerExecutor exec = mock(ContainerExecutor.class);
  DeletionService delService = spy(new DeletionService(exec));
  delService.init(conf);
  delService.start();

  List<Path> localDirs = new ArrayList<Path>();
  String[] sDirs = new String[4];
  for (int i = 0; i < 4; ++i) {
    localDirs.add(lfs.makeQualified(new Path(basedir, i + "")));
    sDirs[i] = localDirs.get(i).toString();
  }
  conf.setStrings(YarnConfiguration.NM_LOCAL_DIRS, sDirs);

  LocalDirsHandlerService diskhandler = new LocalDirsHandlerService();
  diskhandler.init(conf);

  ResourceLocalizationService locService =
    spy(new ResourceLocalizationService(dispatcher, exec, delService,
                                        diskhandler));
  doReturn(lfs)
    .when(locService).getLocalFileContext(isA(Configuration.class));
  try {
    dispatcher.start();

    // initialize ResourceLocalizationService
    locService.init(conf);

    final FsPermission defaultPerm = new FsPermission((short)0755);

    // verify directory creation
    for (Path p : localDirs) {
      p = new Path((new URI(p.toString())).getPath());
      Path usercache = new Path(p, ContainerLocalizer.USERCACHE);
      verify(spylfs)
        .mkdir(eq(usercache),
            eq(defaultPerm), eq(true));
      Path publicCache = new Path(p, ContainerLocalizer.FILECACHE);
      verify(spylfs)
        .mkdir(eq(publicCache),
            eq(defaultPerm), eq(true));
      Path nmPriv = new Path(p, ResourceLocalizationService.NM_PRIVATE_DIR);
      verify(spylfs).mkdir(eq(nmPriv),
          eq(ResourceLocalizationService.NM_PRIVATE_PERM), eq(true));
    }
  } finally {
    dispatcher.stop();
    delService.stop();
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:56,代码来源:TestResourceLocalizationService.java

示例7: testLogDeletion

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test
@SuppressWarnings("unchecked")
public void testLogDeletion() {
  DeletionService delService = mock(DeletionService.class);
  Configuration conf = new YarnConfiguration();
  String user = "testuser";

  File[] localLogDirs = new File[2];
  localLogDirs[0] =
      new File("target", this.getClass().getName() + "-localLogDir0")
          .getAbsoluteFile();
  localLogDirs[1] =
      new File("target", this.getClass().getName() + "-localLogDir1")
          .getAbsoluteFile();
  String localLogDirsString =
      localLogDirs[0].getAbsolutePath() + ","
          + localLogDirs[1].getAbsolutePath();

  conf.set(YarnConfiguration.NM_LOG_DIRS, localLogDirsString);
  conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, false);
  conf.setLong(YarnConfiguration.NM_LOG_RETAIN_SECONDS, 0l);

  DrainDispatcher dispatcher = createDispatcher(conf);
  EventHandler<ApplicationEvent> appEventHandler = mock(EventHandler.class);
  dispatcher.register(ApplicationEventType.class, appEventHandler);

  LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService();
  dirsHandler.init(conf);

  ApplicationId appId1 = BuilderUtils.newApplicationId(1234, 1);
  ApplicationAttemptId appAttemptId1 =
      BuilderUtils.newApplicationAttemptId(appId1, 1);
  ContainerId container11 = BuilderUtils.newContainerId(appAttemptId1, 1);

  NonAggregatingLogHandler logHandler =
      new NonAggregatingLogHandler(dispatcher, delService, dirsHandler);
  logHandler.init(conf);
  logHandler.start();

  logHandler.handle(new LogHandlerAppStartedEvent(appId1, user, null,
      ContainerLogsRetentionPolicy.ALL_CONTAINERS, null));

  logHandler.handle(new LogHandlerContainerFinishedEvent(container11, 0));

  logHandler.handle(new LogHandlerAppFinishedEvent(appId1));

  Path[] localAppLogDirs = new Path[2];
  localAppLogDirs[0] =
      new Path(localLogDirs[0].getAbsolutePath(), appId1.toString());
  localAppLogDirs[1] =
      new Path(localLogDirs[1].getAbsolutePath(), appId1.toString());

  // 5 seconds for the delete which is a separate thread.
  long verifyStartTime = System.currentTimeMillis();
  WantedButNotInvoked notInvokedException = null;
  boolean matched = false;
  while (!matched && System.currentTimeMillis() < verifyStartTime + 5000l) {
    try {
      verify(delService).delete(eq(user), (Path) eq(null),
          eq(localAppLogDirs[0]), eq(localAppLogDirs[1]));
      matched = true;
    } catch (WantedButNotInvoked e) {
      notInvokedException = e;
      try {
        Thread.sleep(50l);
      } catch (InterruptedException i) {
      }
    }
  }
  if (!matched) {
    throw notInvokedException;
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:74,代码来源:TestNonAggregatingLogHandler.java

示例8: testDelayedDelete

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test
@SuppressWarnings("unchecked")
public void testDelayedDelete() {
  DeletionService delService = mock(DeletionService.class);
  Configuration conf = new YarnConfiguration();
  String user = "testuser";

  File[] localLogDirs = new File[2];
  localLogDirs[0] =
      new File("target", this.getClass().getName() + "-localLogDir0")
          .getAbsoluteFile();
  localLogDirs[1] =
      new File("target", this.getClass().getName() + "-localLogDir1")
          .getAbsoluteFile();
  String localLogDirsString =
      localLogDirs[0].getAbsolutePath() + ","
          + localLogDirs[1].getAbsolutePath();

  conf.set(YarnConfiguration.NM_LOG_DIRS, localLogDirsString);
  conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, false);

  conf.setLong(YarnConfiguration.NM_LOG_RETAIN_SECONDS, 10800l);

  DrainDispatcher dispatcher = createDispatcher(conf);
  EventHandler<ApplicationEvent> appEventHandler = mock(EventHandler.class);
  dispatcher.register(ApplicationEventType.class, appEventHandler);

  LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService();
  dirsHandler.init(conf);

  ApplicationId appId1 = BuilderUtils.newApplicationId(1234, 1);
  ApplicationAttemptId appAttemptId1 =
      BuilderUtils.newApplicationAttemptId(appId1, 1);
  ContainerId container11 = BuilderUtils.newContainerId(appAttemptId1, 1);

  NonAggregatingLogHandler logHandler =
      new NonAggregatingLogHandlerWithMockExecutor(dispatcher, delService,
                                                   dirsHandler);
  logHandler.init(conf);
  logHandler.start();

  logHandler.handle(new LogHandlerAppStartedEvent(appId1, user, null,
      ContainerLogsRetentionPolicy.ALL_CONTAINERS, null));

  logHandler.handle(new LogHandlerContainerFinishedEvent(container11, 0));

  logHandler.handle(new LogHandlerAppFinishedEvent(appId1));

  Path[] localAppLogDirs = new Path[2];
  localAppLogDirs[0] =
      new Path(localLogDirs[0].getAbsolutePath(), appId1.toString());
  localAppLogDirs[1] =
      new Path(localLogDirs[1].getAbsolutePath(), appId1.toString());

  ScheduledThreadPoolExecutor mockSched =
      ((NonAggregatingLogHandlerWithMockExecutor) logHandler).mockSched;

  verify(mockSched).schedule(any(Runnable.class), eq(10800l),
      eq(TimeUnit.SECONDS));
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:61,代码来源:TestNonAggregatingLogHandler.java

示例9: testContainerLogFile

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test(timeout=30000)
public void testContainerLogFile() throws IOException, YarnException {
  File absLogDir = new File("target",
      TestNMWebServer.class.getSimpleName() + "LogDir").getAbsoluteFile();
  String logdirwithFile = absLogDir.toURI().toString();
  Configuration conf = new Configuration();
  conf.set(YarnConfiguration.NM_LOG_DIRS, logdirwithFile);
  conf.setFloat(YarnConfiguration.NM_MAX_PER_DISK_UTILIZATION_PERCENTAGE,
      0.0f);
  LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService();
  dirsHandler.init(conf);
  NMContext nmContext = new NodeManager.NMContext(null, null, dirsHandler,
      new ApplicationACLsManager(conf), new NMNullStateStoreService());
  // Add an application and the corresponding containers
  String user = "nobody";
  String userFolder = "nobodysFolder";
  long clusterTimeStamp = 1234;
  ApplicationId appId = BuilderUtils.newApplicationId(
      clusterTimeStamp, 1);
  Application app = mock(Application.class);
  when(app.getUser()).thenReturn(user);
  when(app.getAppId()).thenReturn(appId);
  ApplicationAttemptId appAttemptId = BuilderUtils.newApplicationAttemptId(
      appId, 1);
  ContainerId containerId = BuilderUtils.newContainerId(
      appAttemptId, 1);
  nmContext.getApplications().put(appId, app);

  MockContainer container =
      new MockContainer(appAttemptId, new AsyncDispatcher(), conf, user,
          appId, 1, userFolder);
  container.setState(ContainerState.RUNNING);
  nmContext.getContainers().put(containerId, container);
  File containerLogDir = new File(absLogDir,
      ContainerLaunch.getRelativeContainerLogDir(appId.toString(),
          containerId.toString(), userFolder));
  containerLogDir.mkdirs();
  String fileName = "fileName";
  File containerLogFile = new File(containerLogDir, fileName);
  containerLogFile.createNewFile();
  File file = ContainerLogsUtils.getContainerLogFile(containerId,
      fileName, user, nmContext, userFolder);
  Assert.assertEquals(containerLogFile.toURI().toString(),
      file.toURI().toString());
  FileUtil.fullyDelete(absLogDir);
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:47,代码来源:TestContainerLogsPage.java

示例10: testLocalizationInit

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test
public void testLocalizationInit() throws Exception {
  conf.set(CommonConfigurationKeys.FS_PERMISSIONS_UMASK_KEY, "077");
  AsyncDispatcher dispatcher = new AsyncDispatcher();
  dispatcher.init(new Configuration());

  ContainerExecutor exec = mock(ContainerExecutor.class);
  DeletionService delService = spy(new DeletionService(exec));
  delService.init(conf);
  delService.start();

  List<Path> localDirs = new ArrayList<Path>();
  String[] sDirs = new String[4];
  for (int i = 0; i < 4; ++i) {
    localDirs.add(lfs.makeQualified(new Path(basedir, i + "")));
    sDirs[i] = localDirs.get(i).toString();
  }
  conf.setStrings(YarnConfiguration.NM_LOCAL_DIRS, sDirs);

  LocalDirsHandlerService diskhandler = new LocalDirsHandlerService();
  diskhandler.init(conf);

  ResourceLocalizationService locService =
    spy(new ResourceLocalizationService(dispatcher, exec, delService,
                                        diskhandler, nmContext));
  doReturn(lfs)
    .when(locService).getLocalFileContext(isA(Configuration.class));
  try {
    dispatcher.start();

    // initialize ResourceLocalizationService
    locService.init(conf);

    final FsPermission defaultPerm = new FsPermission((short)0755);
    final FsPermission securePerm = new FsPermission((short)0711);

    // verify directory creation
    for (Path p : localDirs) {
      p = new Path((new URI(p.toString())).getPath());
      Path usercache = new Path(p, ContainerLocalizer.USERCACHE);
      verify(spylfs)
        .mkdir(eq(usercache),
            eq(securePerm), eq(true));
      Path publicCache = new Path(p, ContainerLocalizer.FILECACHE);
      verify(spylfs)
        .mkdir(eq(publicCache),
            eq(defaultPerm), eq(true));
      Path nmPriv = new Path(p, ResourceLocalizationService.NM_PRIVATE_DIR);
      verify(spylfs).mkdir(eq(nmPriv),
          eq(ResourceLocalizationService.NM_PRIVATE_PERM), eq(true));
    }
  } finally {
    dispatcher.stop();
    delService.stop();
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:57,代码来源:TestResourceLocalizationService.java

示例11: testDirectoryCleanupOnNewlyCreatedStateStore

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test
public void testDirectoryCleanupOnNewlyCreatedStateStore()
    throws IOException, URISyntaxException {
  conf.set(CommonConfigurationKeys.FS_PERMISSIONS_UMASK_KEY, "077");
  AsyncDispatcher dispatcher = new AsyncDispatcher();
  dispatcher.init(new Configuration());

  ContainerExecutor exec = mock(ContainerExecutor.class);
  DeletionService delService = spy(new DeletionService(exec));
  delService.init(conf);
  delService.start();

  List<Path> localDirs = new ArrayList<Path>();
  String[] sDirs = new String[4];
  for (int i = 0; i < 4; ++i) {
    localDirs.add(lfs.makeQualified(new Path(basedir, i + "")));
    sDirs[i] = localDirs.get(i).toString();
  }
  conf.setStrings(YarnConfiguration.NM_LOCAL_DIRS, sDirs);

  LocalDirsHandlerService diskhandler = new LocalDirsHandlerService();
  diskhandler.init(conf);

  NMStateStoreService nmStateStoreService = mock(NMStateStoreService.class);
  when(nmStateStoreService.canRecover()).thenReturn(true);
  when(nmStateStoreService.isNewlyCreated()).thenReturn(true);

  ResourceLocalizationService locService =
      spy(new ResourceLocalizationService(dispatcher, exec, delService,
          diskhandler,nmContext));
  doReturn(lfs)
      .when(locService).getLocalFileContext(isA(Configuration.class));
  try {
    dispatcher.start();

    // initialize ResourceLocalizationService
    locService.init(conf);

    final FsPermission defaultPerm = new FsPermission((short)0755);
    final FsPermission securePerm = new FsPermission((short)0711);
    
    // verify directory creation
    for (Path p : localDirs) {
      p = new Path((new URI(p.toString())).getPath());
      Path usercache = new Path(p, ContainerLocalizer.USERCACHE);
      verify(spylfs)
          .rename(eq(usercache), any(Path.class), any(Options.Rename.class));
      verify(spylfs)
          .mkdir(eq(usercache),
              eq(securePerm), eq(true));
      Path publicCache = new Path(p, ContainerLocalizer.FILECACHE);
      verify(spylfs)
          .rename(eq(usercache), any(Path.class), any(Options.Rename.class));
      verify(spylfs)
          .mkdir(eq(publicCache),
              eq(defaultPerm), eq(true));
      Path nmPriv = new Path(p, ResourceLocalizationService.NM_PRIVATE_DIR);
      verify(spylfs)
          .rename(eq(usercache), any(Path.class), any(Options.Rename.class));
      verify(spylfs).mkdir(eq(nmPriv),
          eq(ResourceLocalizationService.NM_PRIVATE_PERM), eq(true));
    }
  } finally {
    dispatcher.stop();
    delService.stop();
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:68,代码来源:TestResourceLocalizationService.java

示例12: testLocalizerRunnerException

import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService; //导入方法依赖的package包/类
@Test( timeout = 10000)
@SuppressWarnings("unchecked") // mocked generics
public void testLocalizerRunnerException() throws Exception {
  DrainDispatcher dispatcher = new DrainDispatcher();
  dispatcher.init(conf);
  dispatcher.start();
  EventHandler<ApplicationEvent> applicationBus = mock(EventHandler.class);
  dispatcher.register(ApplicationEventType.class, applicationBus);
  EventHandler<ContainerEvent> containerBus = mock(EventHandler.class);
  dispatcher.register(ContainerEventType.class, containerBus);

  ContainerExecutor exec = mock(ContainerExecutor.class);
  LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService();
  LocalDirsHandlerService dirsHandlerSpy = spy(dirsHandler);
  dirsHandlerSpy.init(conf);

  DeletionService delServiceReal = new DeletionService(exec);
  DeletionService delService = spy(delServiceReal);
  delService.init(new Configuration());
  delService.start();

  ResourceLocalizationService rawService =
      new ResourceLocalizationService(dispatcher, exec, delService,
      dirsHandlerSpy, nmContext);
  ResourceLocalizationService spyService = spy(rawService);
  doReturn(mockServer).when(spyService).createServer();
  try {
    spyService.init(conf);
    spyService.start();

    // init application
    final Application app = mock(Application.class);
    final ApplicationId appId =
        BuilderUtils.newApplicationId(314159265358979L, 3);
    when(app.getUser()).thenReturn("user0");
    when(app.getAppId()).thenReturn(appId);
    spyService.handle(new ApplicationLocalizationEvent(
        LocalizationEventType.INIT_APPLICATION_RESOURCES, app));
    dispatcher.await();

    Random r = new Random();
    long seed = r.nextLong();
    System.out.println("SEED: " + seed);
    r.setSeed(seed);
    final Container c = getMockContainer(appId, 42, "user0", "user0Folder");
    final LocalResource resource1 = getPrivateMockedResource(r);
    System.out.println("Here 4");
    
    final LocalResourceRequest req1 = new LocalResourceRequest(resource1);
    Map<LocalResourceVisibility, Collection<LocalResourceRequest>> rsrcs =
      new HashMap<LocalResourceVisibility, 
                  Collection<LocalResourceRequest>>();
    List<LocalResourceRequest> privateResourceList =
        new ArrayList<LocalResourceRequest>();
    privateResourceList.add(req1);
    rsrcs.put(LocalResourceVisibility.PRIVATE, privateResourceList);

    final Constructor<?>[] constructors =
        FSError.class.getDeclaredConstructors();
    constructors[0].setAccessible(true);
    FSError fsError =
        (FSError) constructors[0].newInstance(new IOException("Disk Error"));

    Mockito
      .doThrow(fsError)
      .when(dirsHandlerSpy)
      .getLocalPathForWrite(isA(String.class));
    spyService.handle(new ContainerLocalizationRequestEvent(c, rsrcs));
    Thread.sleep(1000);
    dispatcher.await();
    // Verify if ContainerResourceFailedEvent is invoked on FSError
    verify(containerBus).handle(isA(ContainerResourceFailedEvent.class));
  } finally {
    spyService.stop();
    dispatcher.stop();
    delService.stop();
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:79,代码来源:TestResourceLocalizationService.java


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