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


Java DatanodeProtocolPB类代码示例

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


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

示例1: testDatanodeDetect

import org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolPB; //导入依赖的package包/类
@Test
public void testDatanodeDetect() throws ServiceException, IOException {
  final AtomicReference<BlockReportRequestProto> request =
      new AtomicReference<>();

  // just capture the outgoing PB
  DatanodeProtocolPB mockProxy = mock(DatanodeProtocolPB.class);
  doAnswer(new Answer<BlockReportResponseProto>() {
    public BlockReportResponseProto answer(InvocationOnMock invocation) {
      Object[] args = invocation.getArguments();
      request.set((BlockReportRequestProto) args[1]);
      return BlockReportResponseProto.newBuilder().build();
    }
  }).when(mockProxy).blockReport(any(RpcController.class),
                                 any(BlockReportRequestProto.class));
  
  @SuppressWarnings("resource")
  DatanodeProtocolClientSideTranslatorPB nn =
      new DatanodeProtocolClientSideTranslatorPB(mockProxy);

  DatanodeRegistration reg = DFSTestUtil.getLocalDatanodeRegistration();
  NamespaceInfo nsInfo = new NamespaceInfo(1, "cluster", "bp", 1);
  reg.setNamespaceInfo(nsInfo);

  Replica r = new FinalizedReplica(new Block(1, 2, 3), null, null);
  BlockListAsLongs bbl = BlockListAsLongs.encode(Collections.singleton(r));
  DatanodeStorage storage = new DatanodeStorage("s1");
  StorageBlockReport[] sbr = { new StorageBlockReport(storage, bbl) };    

  // check DN sends new-style BR
  request.set(null);
  nsInfo.setCapabilities(Capability.STORAGE_BLOCK_REPORT_BUFFERS.getMask());
  nn.blockReport(reg, "pool", sbr,
      new BlockReportContext(1, 0, System.nanoTime()));
  BlockReportRequestProto proto = request.get();
  assertNotNull(proto);
  assertTrue(proto.getReports(0).getBlocksList().isEmpty());
  assertFalse(proto.getReports(0).getBlocksBuffersList().isEmpty());
  
  // back up to prior version and check DN sends old-style BR
  request.set(null);
  nsInfo.setCapabilities(Capability.UNKNOWN.getMask());
  nn.blockReport(reg, "pool", sbr,
      new BlockReportContext(1, 0, System.nanoTime()));
  proto = request.get();
  assertNotNull(proto);
  assertFalse(proto.getReports(0).getBlocksList().isEmpty());
  assertTrue(proto.getReports(0).getBlocksBuffersList().isEmpty());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:50,代码来源:TestBlockListAsLongs.java

示例2: testDatanodeDetect

import org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolPB; //导入依赖的package包/类
@Test
public void testDatanodeDetect() throws ServiceException, IOException {
  final AtomicReference<BlockReportRequestProto> request =
      new AtomicReference<>();

  // just capture the outgoing PB
  DatanodeProtocolPB mockProxy = mock(DatanodeProtocolPB.class);
  doAnswer(new Answer<BlockReportResponseProto>() {
    public BlockReportResponseProto answer(InvocationOnMock invocation) {
      Object[] args = invocation.getArguments();
      request.set((BlockReportRequestProto) args[1]);
      return BlockReportResponseProto.newBuilder().build();
    }
  }).when(mockProxy).blockReport(any(RpcController.class),
                                 any(BlockReportRequestProto.class));
  
  @SuppressWarnings("resource")
  DatanodeProtocolClientSideTranslatorPB nn =
      new DatanodeProtocolClientSideTranslatorPB(mockProxy);

  DatanodeRegistration reg = DFSTestUtil.getLocalDatanodeRegistration();
  NamespaceInfo nsInfo = new NamespaceInfo(1, "cluster", "bp", 1);
  reg.setNamespaceInfo(nsInfo);

  Replica r = new FinalizedReplica(new Block(1, 2, 3), null, null);
  BlockListAsLongs bbl = BlockListAsLongs.encode(Collections.singleton(r));
  DatanodeStorage storage = new DatanodeStorage("s1");
  StorageBlockReport[] sbr = { new StorageBlockReport(storage, bbl) };    

  // check DN sends new-style BR
  request.set(null);
  nsInfo.setCapabilities(Capability.STORAGE_BLOCK_REPORT_BUFFERS.getMask());
  nn.blockReport(reg, "pool", sbr,
      new BlockReportContext(1, 0, System.nanoTime(), 0L));
  BlockReportRequestProto proto = request.get();
  assertNotNull(proto);
  assertTrue(proto.getReports(0).getBlocksList().isEmpty());
  assertFalse(proto.getReports(0).getBlocksBuffersList().isEmpty());
  
  // back up to prior version and check DN sends old-style BR
  request.set(null);
  nsInfo.setCapabilities(Capability.UNKNOWN.getMask());
  nn.blockReport(reg, "pool", sbr,
      new BlockReportContext(1, 0, System.nanoTime(), 0L));
  proto = request.get();
  assertNotNull(proto);
  assertFalse(proto.getReports(0).getBlocksList().isEmpty());
  assertTrue(proto.getReports(0).getBlocksBuffersList().isEmpty());
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:50,代码来源:TestBlockListAsLongs.java


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