org.apache.hadoop.hbase.zookeeper.ZKAssign.getDataAndWatch()方法的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(4.9k)|赞(0)|评价(0)|浏览(112)

本文整理了Java中org.apache.hadoop.hbase.zookeeper.ZKAssign.getDataAndWatch()方法的一些代码示例,展示了ZKAssign.getDataAndWatch()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZKAssign.getDataAndWatch()方法的具体详情如下:
包路径:org.apache.hadoop.hbase.zookeeper.ZKAssign
类名称:ZKAssign
方法名:getDataAndWatch

ZKAssign.getDataAndWatch介绍

[英]Gets the current data in the unassigned node for the specified region name or fully-qualified path.

Returns null if the region does not currently have a node.

Sets a watch on the node if the node exists.
[中]获取指定区域名称或完全限定路径的未分配节点中的当前数据。
如果区域当前没有节点,则返回null。
如果节点存在,则在节点上设置监视。

代码示例

代码示例来源:origin: co.cask.hbase/hbase

/**
 * New unassigned node has been created.
 *
 * <p>This happens when an RS begins the OPENING or CLOSING of a region by
 * creating an unassigned node.
 *
 * <p>When this happens we must:
 * <ol>
 *   <li>Watch the node for further events</li>
 *   <li>Read and handle the state in the node</li>
 * </ol>
 */
@Override
public void nodeCreated(String path) {
 if(path.startsWith(watcher.assignmentZNode)) {
  try {
   Stat stat = new Stat();
   RegionTransitionData data = ZKAssign.getDataAndWatch(watcher, path, stat);
   if (data == null) {
    return;
   }
   handleRegion(data, stat.getVersion());
  } catch (KeeperException e) {
   master.abort("Unexpected ZK exception reading unassigned node data", e);
  }
 }
}

代码示例来源:origin: co.cask.hbase/hbase

/**
 * Existing unassigned node has had data changed.
 *
 * <p>This happens when an RS transitions from OFFLINE to OPENING, or between
 * OPENING/OPENED and CLOSING/CLOSED.
 *
 * <p>When this happens we must:
 * <ol>
 *   <li>Watch the node for further events</li>
 *   <li>Read and handle the state in the node</li>
 * </ol>
 */
@Override
public void nodeDataChanged(String path) {
 if(path.startsWith(watcher.assignmentZNode)) {
  try {
   Stat stat = new Stat();
   RegionTransitionData data = ZKAssign.getDataAndWatch(watcher, path, stat);
   if (data == null) {
    return;
   }
   handleRegion(data, stat.getVersion());
  } catch (KeeperException e) {
   master.abort("Unexpected ZK exception reading unassigned node data", e);
  }
 }
}

代码示例来源:origin: harbby/presto-connectors

@Override
 public void run() {
  try {
   // Just make sure we see the changes for the new znodes
   List<String> children =
    ZKUtil.listChildrenAndWatchForNewChildren(
     watcher, watcher.assignmentZNode);
   if (children != null) {
    Stat stat = new Stat();
    for (String child : children) {
     // if region is in transition, we already have a watch
     // on it, so no need to watch it again. So, as I know for now,
     // this is needed to watch splitting nodes only.
     if (!regionStates.isRegionInTransition(child)) {
      ZKAssign.getDataAndWatch(watcher, child, stat);
     }
    }
   }
  } catch (KeeperException e) {
   server.abort("Unexpected ZK exception reading unassigned children", e);
  }
 }
});

代码示例来源:origin: co.cask.hbase/hbase

/**
 * Process failover of new master for region <code>encodedRegionName</code>
 * up in zookeeper.
 * @param encodedRegionName Region to process failover for.
 * @param regionInfo If null we'll go get it from meta table.
 * @param deadServers Can be null 
 * @return True if we processed <code>regionInfo</code> as a RIT.
 * @throws KeeperException
 * @throws IOException
 */
boolean processRegionInTransition(final String encodedRegionName,
  final HRegionInfo regionInfo,
  final Map<ServerName,List<Pair<HRegionInfo,Result>>> deadServers)
throws KeeperException, IOException {
 Stat stat = new Stat();
 RegionTransitionData data = ZKAssign.getDataAndWatch(watcher,
   encodedRegionName, stat);
 if (data == null) return false;
 HRegionInfo hri = regionInfo;
 if (hri == null) {
  if ((hri = getHRegionInfo(data)) == null) return false; 
 }
 processRegionsInTransition(data, hri, deadServers, stat.getVersion());
 return true;
}

代码示例来源:origin: co.cask.hbase/hbase

for (String child : children) {
 stat.setVersion(0);
 RegionTransitionData data = ZKAssign.getDataAndWatch(watcher,
   ZKUtil.joinZNode(watcher.assignmentZNode, child), stat);

代码示例来源:origin: harbby/presto-connectors

@Override
 public void run() {
  try {
   Stat stat = new Stat();
   byte [] data = ZKAssign.getDataAndWatch(watcher, path, stat);
   if (data == null) return;
   RegionTransition rt = RegionTransition.parseFrom(data);
   // TODO: This code is tied to ZK anyway, so for now leaving it as is,
   // will refactor when whole region assignment will be abstracted from ZK
   BaseCoordinatedStateManager csm =
    (BaseCoordinatedStateManager) server.getCoordinatedStateManager();
   OpenRegionCoordination openRegionCoordination = csm.getOpenRegionCoordination();
   ZkOpenRegionCoordination.ZkOpenRegionDetails zkOrd =
    new ZkOpenRegionCoordination.ZkOpenRegionDetails();
   zkOrd.setVersion(stat.getVersion());
   zkOrd.setServerName(csm.getServer().getServerName());
   handleRegion(rt, openRegionCoordination, zkOrd);
  } catch (KeeperException e) {
   server.abort("Unexpected ZK exception reading unassigned node data", e);
  } catch (DeserializationException e) {
   server.abort("Unexpected exception deserializing node data", e);
  }
 }
});

代码示例来源:origin: harbby/presto-connectors

try {
 Stat stat = new Stat();
 byte [] data = ZKAssign.getDataAndWatch(watcher, encodedRegionName, stat);
 if (data == null) return false;
 RegionTransition rt;

代码示例来源:origin: harbby/presto-connectors

Stat stat = new Stat();
byte[] data =
  ZKAssign.getDataAndWatch(watcher, ZKUtil.joinZNode(watcher.assignmentZNode, child),
   stat);
if (data != null) {

相关文章