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


Java ClientDatanodeProtocol.getBlockPathInfo方法代码示例

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


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

示例1: getBlockPathInfo

import org.apache.hadoop.hdfs.protocol.ClientDatanodeProtocol; //导入方法依赖的package包/类
public ThdfsBlockPath getBlockPathInfo(TDatanodeID datanode,
                              ThdfsNamespaceId namespaceId,
                              ThdfsBlock block)
                              throws ThriftIOException, TException {
  Block blk = new Block(block.blockId, block.numBytes, 
                        block.generationStamp);

  // make RPC to datanode to find local pathnames of blocks
  try {
    ClientDatanodeProtocol remote = getOrCreate(datanode.name);
    BlockPathInfo pathinfo = remote.getBlockPathInfo(namespaceId.id, blk);
    return new ThdfsBlockPath(pathinfo.getBlockPath(), 
                              pathinfo.getMetaPath());
  } catch (IOException e) {
    String msg = "Error getBlockPathInfo datanode " + datanode.name +
                 " namespaceid " + namespaceId.id +
                 " block " + blk;
    LOG.warn(msg);
    throw new ThriftIOException(msg);
  }
}
 
开发者ID:rhli,项目名称:hadoop-EAR,代码行数:22,代码来源:HadoopThriftDatanodeServer.java

示例2: getOrComputePathInfo

import org.apache.hadoop.hdfs.protocol.ClientDatanodeProtocol; //导入方法依赖的package包/类
public BlockPathInfo getOrComputePathInfo(
    int namespaceid,
    Block block,
    DatanodeInfo node,
    Configuration conf
) throws IOException {
  InjectionHandler
      .processEventIO(InjectionEvent.BLOCK_READ_LOCAL_GET_PATH_INFO);

  LocalBlockKey blockKey = new LocalBlockKey(namespaceid, block);
  BlockPathInfo pathinfo = cache.get(blockKey);
  if (pathinfo != null) {
    return pathinfo;
  }
  // make RPC to local datanode to find local pathnames of blocks
  ClientDatanodeProtocol proxy = getDatanodeProxy(node, conf);
  try {
    if (namespaceIdSupported) {
      pathinfo = proxy.getBlockPathInfo(namespaceid, block);
    } else {
      pathinfo =  proxy.getBlockPathInfo(block);
    }
    if (pathinfo != null) {
      if (LOG.isDebugEnabled()) {
        LOG.debug("Cached location of block " + blockKey + " as " +
            pathinfo);
      }
      setBlockLocalPathInfo(blockKey, pathinfo);
    }

  } catch (IOException ioe) {
    datanode = null;
    RPC.stopProxy(proxy);
    throw ioe;
  }
  return pathinfo;
}
 
开发者ID:rhli,项目名称:hadoop-EAR,代码行数:38,代码来源:BlockReaderLocalBase.java


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