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


Java NamenodeProtocols.registerDatanode方法代码示例

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


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

示例1: testRegistrationWithDifferentSoftwareVersions

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersions() throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY, "3.0.0");
  conf.set(DFSConfigKeys.DFS_NAMENODE_MIN_SUPPORTED_DATANODE_VERSION_KEY, "3.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsConstants.DATANODE_LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn("127.0.0.1").when(mockDnReg).getIpAddr();
    doReturn(123).when(mockDnReg).getXferPort();
    doReturn("fake-storage-id").when(mockDnReg).getDatanodeUuid();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same.
    doReturn("3.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software version of DN is above minimum required by NN.
    doReturn("4.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is below minimum required by NN.
    doReturn("2.0.0").when(mockDnReg).getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail("Should not have been able to register DN with too-low version.");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils.assertExceptionContains(
          "The reported DataNode version is too low", ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:49,代码来源:TestDatanodeRegistration.java

示例2: testRegistrationWithDifferentSoftwareVersionsDuringUpgrade

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersionsDuringUpgrade()
    throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY, "1.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsConstants.DATANODE_LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn("fake-storage-id").when(mockDnReg).getDatanodeUuid();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same and CTimes are the
    // same.
    doReturn(VersionInfo.getVersion()).when(mockDnReg).getSoftwareVersion();
    doReturn("127.0.0.1").when(mockDnReg).getIpAddr();
    doReturn(123).when(mockDnReg).getXferPort();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software versions are the same and CTimes are
    // different.
    doReturn(nnCTime + 1).when(mockStorageInfo).getCTime();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is different from NN and CTimes
    // are different.
    doReturn(VersionInfo.getVersion() + ".1").when(mockDnReg).getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail("Should not have been able to register DN with different software" +
          " versions and CTimes");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils.assertExceptionContains(
          "does not match CTime of NN", ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:53,代码来源:TestDatanodeRegistration.java

示例3: testRegistrationWithDifferentSoftwareVersions

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersions() throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY, "3.0.0");
  conf.set(DFSConfigKeys.DFS_NAMENODE_MIN_SUPPORTED_DATANODE_VERSION_KEY, "3.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsServerConstants.DATANODE_LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn("127.0.0.1").when(mockDnReg).getIpAddr();
    doReturn(123).when(mockDnReg).getXferPort();
    doReturn("fake-storage-id").when(mockDnReg).getDatanodeUuid();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same.
    doReturn("3.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software version of DN is above minimum required by NN.
    doReturn("4.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is below minimum required by NN.
    doReturn("2.0.0").when(mockDnReg).getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail("Should not have been able to register DN with too-low version.");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils.assertExceptionContains(
          "The reported DataNode version is too low", ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:49,代码来源:TestDatanodeRegistration.java

示例4: testRegistrationWithDifferentSoftwareVersionsDuringUpgrade

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersionsDuringUpgrade()
    throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY, "1.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsServerConstants.DATANODE_LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn("fake-storage-id").when(mockDnReg).getDatanodeUuid();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same and CTimes are the
    // same.
    doReturn(VersionInfo.getVersion()).when(mockDnReg).getSoftwareVersion();
    doReturn("127.0.0.1").when(mockDnReg).getIpAddr();
    doReturn(123).when(mockDnReg).getXferPort();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software versions are the same and CTimes are
    // different.
    doReturn(nnCTime + 1).when(mockStorageInfo).getCTime();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is different from NN and CTimes
    // are different.
    doReturn(VersionInfo.getVersion() + ".1").when(mockDnReg).getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail("Should not have been able to register DN with different software" +
          " versions and CTimes");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils.assertExceptionContains(
          "does not match CTime of NN", ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:53,代码来源:TestDatanodeRegistration.java

示例5: testChangeStorageID

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testChangeStorageID() throws Exception {
  final String DN_IP_ADDR = "127.0.0.1";
  final String DN_HOSTNAME = "localhost";
  final int DN_XFER_PORT = 12345;
  final int DN_INFO_PORT = 12346;
  final int DN_INFO_SECURE_PORT = 12347;
  final int DN_IPC_PORT = 12348;
  Configuration conf = new HdfsConfiguration();
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    InetSocketAddress addr = new InetSocketAddress(
      "localhost",
      cluster.getNameNodePort());
    DFSClient client = new DFSClient(addr, conf);
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();

    // register a datanode
    DatanodeID dnId = new DatanodeID(DN_IP_ADDR, DN_HOSTNAME,
        "fake-datanode-id", DN_XFER_PORT, DN_INFO_PORT, DN_INFO_SECURE_PORT,
        DN_IPC_PORT);
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage()
        .getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    doReturn(HdfsConstants.DATANODE_LAYOUT_VERSION).when(mockStorageInfo)
        .getLayoutVersion();
    DatanodeRegistration dnReg = new DatanodeRegistration(dnId,
        mockStorageInfo, null, VersionInfo.getVersion());
    rpcServer.registerDatanode(dnReg);

    DatanodeInfo[] report = client.datanodeReport(DatanodeReportType.ALL);
    assertEquals("Expected a registered datanode", 1, report.length);

    // register the same datanode again with a different storage ID
    dnId = new DatanodeID(DN_IP_ADDR, DN_HOSTNAME,
        "changed-fake-datanode-id", DN_XFER_PORT, DN_INFO_PORT,
        DN_INFO_SECURE_PORT, DN_IPC_PORT);
    dnReg = new DatanodeRegistration(dnId,
        mockStorageInfo, null, VersionInfo.getVersion());
    rpcServer.registerDatanode(dnReg);

    report = client.datanodeReport(DatanodeReportType.ALL);
    assertEquals("Datanode with changed storage ID not recognized",
        1, report.length);
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:55,代码来源:TestDatanodeRegistration.java

示例6: testChangeStorageID

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testChangeStorageID() throws Exception {
  final String DN_IP_ADDR = "127.0.0.1";
  final String DN_HOSTNAME = "localhost";
  final int DN_XFER_PORT = 12345;
  final int DN_INFO_PORT = 12346;
  final int DN_IPC_PORT = 12347;
  Configuration conf = new HdfsConfiguration();
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    InetSocketAddress addr = new InetSocketAddress(
      "localhost",
      cluster.getNameNodePort());
    DFSClient client = new DFSClient(addr, conf);
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();

    // register a datanode
    DatanodeID dnId = new DatanodeID(DN_IP_ADDR, DN_HOSTNAME,
        "fake-storage-id", DN_XFER_PORT, DN_INFO_PORT, DN_IPC_PORT);
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage()
        .getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    doReturn(HdfsConstants.LAYOUT_VERSION).when(mockStorageInfo)
        .getLayoutVersion();
    DatanodeRegistration dnReg = new DatanodeRegistration(dnId,
        mockStorageInfo, null, VersionInfo.getVersion());
    rpcServer.registerDatanode(dnReg);

    DatanodeInfo[] report = client.datanodeReport(DatanodeReportType.ALL);
    assertEquals("Expected a registered datanode", 1, report.length);

    // register the same datanode again with a different storage ID
    dnId = new DatanodeID(DN_IP_ADDR, DN_HOSTNAME,
        "changed-fake-storage-id", DN_XFER_PORT, DN_INFO_PORT, DN_IPC_PORT);
    dnReg = new DatanodeRegistration(dnId,
        mockStorageInfo, null, VersionInfo.getVersion());
    rpcServer.registerDatanode(dnReg);

    report = client.datanodeReport(DatanodeReportType.ALL);
    assertEquals("Datanode with changed storage ID not recognized",
        1, report.length);
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:52,代码来源:TestDatanodeRegistration.java

示例7: testRegistrationWithDifferentSoftwareVersions

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersions() throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY, "3.0.0");
  conf.set(DFSConfigKeys.DFS_NAMENODE_MIN_SUPPORTED_DATANODE_VERSION_KEY, "3.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsConstants.LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn(123).when(mockDnReg).getXferPort();
    doReturn("fake-storage-id").when(mockDnReg).getStorageID();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same.
    doReturn("3.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software version of DN is above minimum required by NN.
    doReturn("4.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is below minimum required by NN.
    doReturn("2.0.0").when(mockDnReg).getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail("Should not have been able to register DN with too-low version.");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils.assertExceptionContains(
          "The reported DataNode version is too low", ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:48,代码来源:TestDatanodeRegistration.java

示例8: testRegistrationWithDifferentSoftwareVersionsDuringUpgrade

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersionsDuringUpgrade()
    throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY, "1.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf)
        .numDataNodes(0)
        .build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = cluster.getNamesystem().getFSImage().getStorage().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsConstants.LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn(123).when(mockDnReg).getXferPort();
    doReturn("fake-storage-id").when(mockDnReg).getStorageID();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same and CTimes are the
    // same.
    doReturn(VersionInfo.getVersion()).when(mockDnReg).getSoftwareVersion();
    doReturn(123).when(mockDnReg).getXferPort();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software versions are the same and CTimes are
    // different.
    doReturn(nnCTime + 1).when(mockStorageInfo).getCTime();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is different from NN and CTimes
    // are different.
    doReturn(VersionInfo.getVersion() + ".1").when(mockDnReg).getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail("Should not have been able to register DN with different software" +
          " versions and CTimes");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils.assertExceptionContains(
          "does not match CTime of NN", ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:53,代码来源:TestDatanodeRegistration.java

示例9: testChangeStorageID

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testChangeStorageID() throws Exception {
  final String DN_IP_ADDR = "127.0.0.1";
  final String DN_HOSTNAME = "localhost";
  final int DN_XFER_PORT = 12345;
  final int DN_INFO_PORT = 12346;
  final int DN_IPC_PORT = 12347;
  Configuration conf = new HdfsConfiguration();
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
    InetSocketAddress addr =
        new InetSocketAddress("localhost", cluster.getNameNodePort());
    DFSClient client = new DFSClient(addr, conf);
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();

    // register a datanode
    DatanodeID dnId =
        new DatanodeID(DN_IP_ADDR, DN_HOSTNAME, "fake-storage-id",
            DN_XFER_PORT, DN_INFO_PORT, DN_IPC_PORT);
    long nnCTime = StorageInfo.getStorageInfoFromDB().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    doReturn(HdfsConstants.LAYOUT_VERSION).when(mockStorageInfo)
        .getLayoutVersion();
    DatanodeRegistration dnReg =
        new DatanodeRegistration(dnId, mockStorageInfo, null,
            VersionInfo.getVersion());
    rpcServer.registerDatanode(dnReg);

    DatanodeInfo[] report = client.datanodeReport(DatanodeReportType.ALL);
    assertEquals("Expected a registered datanode", 1, report.length);

    // register the same datanode again with a different storage ID
    dnId = new DatanodeID(DN_IP_ADDR, DN_HOSTNAME, "changed-fake-storage-id",
        DN_XFER_PORT, DN_INFO_PORT, DN_IPC_PORT);
    dnReg = new DatanodeRegistration(dnId, mockStorageInfo, null,
        VersionInfo.getVersion());
    rpcServer.registerDatanode(dnReg);

    report = client.datanodeReport(DatanodeReportType.ALL);
    assertEquals("Datanode with changed storage ID not recognized", 1,
        report.length);
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:50,代码来源:TestDatanodeRegistration.java

示例10: testRegistrationWithDifferentSoftwareVersions

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersions() throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY,
      "3.0.0");
  conf.set(DFSConfigKeys.DFS_NAMENODE_MIN_SUPPORTED_DATANODE_VERSION_KEY,
      "3.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = StorageInfo.getStorageInfoFromDB().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsConstants.LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn("fake-storage-id").when(mockDnReg).getStorageID();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same.
    doReturn("3.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software version of DN is above minimum required by NN.
    doReturn("4.0.0").when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is below minimum required by NN.
    doReturn("2.0.0").when(mockDnReg).getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail("Should not have been able to register DN with too-low version.");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils
          .assertExceptionContains("The reported DataNode version is too low",
              ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:48,代码来源:TestDatanodeRegistration.java

示例11: testRegistrationWithDifferentSoftwareVersionsDuringUpgrade

import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; //导入方法依赖的package包/类
@Test
public void testRegistrationWithDifferentSoftwareVersionsDuringUpgrade()
    throws Exception {
  Configuration conf = new HdfsConfiguration();
  conf.set(DFSConfigKeys.DFS_DATANODE_MIN_SUPPORTED_NAMENODE_VERSION_KEY,
      "1.0.0");
  MiniDFSCluster cluster = null;
  try {
    cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
    
    NamenodeProtocols rpcServer = cluster.getNameNodeRpc();
    
    long nnCTime = StorageInfo.getStorageInfoFromDB().getCTime();
    StorageInfo mockStorageInfo = mock(StorageInfo.class);
    doReturn(nnCTime).when(mockStorageInfo).getCTime();
    
    DatanodeRegistration mockDnReg = mock(DatanodeRegistration.class);
    doReturn(HdfsConstants.LAYOUT_VERSION).when(mockDnReg).getVersion();
    doReturn("fake-storage-id").when(mockDnReg).getStorageID();
    doReturn(mockStorageInfo).when(mockDnReg).getStorageInfo();
    
    // Should succeed when software versions are the same and CTimes are the
    // same.
    doReturn(VersionInfo.getVersion()).when(mockDnReg).getSoftwareVersion();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should succeed when software versions are the same and CTimes are
    // different.
    doReturn(nnCTime + 1).when(mockStorageInfo).getCTime();
    rpcServer.registerDatanode(mockDnReg);
    
    // Should fail when software version of DN is different from NN and CTimes
    // are different.
    doReturn(VersionInfo.getVersion() + ".1").when(mockDnReg)
        .getSoftwareVersion();
    try {
      rpcServer.registerDatanode(mockDnReg);
      fail(
          "Should not have been able to register DN with different software" +
              " versions and CTimes");
    } catch (IncorrectVersionException ive) {
      GenericTestUtils
          .assertExceptionContains("does not match CTime of NN", ive);
      LOG.info("Got expected exception", ive);
    }
  } finally {
    if (cluster != null) {
      cluster.shutdown();
    }
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:52,代码来源:TestDatanodeRegistration.java


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