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

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

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

ZKWatcher.getRecoverableZooKeeper介绍

[英]Get the connection to ZooKeeper.
[中]接通动物园管理员。

代码示例

代码示例来源:origin: apache/hbase

@Override
public void checkTaskStillAvailable(String path) {
 // A negative retry count will lead to ignoring all error processing.
 this.watcher
   .getRecoverableZooKeeper()
   .getZooKeeper()
   .getData(path, this.watcher, new GetDataAsyncCallback(),
    Long.valueOf(-1) /* retry count */);
 SplitLogCounters.tot_mgr_get_data_queued.increment();
}

代码示例来源:origin: apache/hbase

private void getDataSetWatch(String path, Long retry_count) {
 this.watcher.getRecoverableZooKeeper().getZooKeeper()
   .getData(path, this.watcher, new GetDataAsyncCallback(), retry_count);
 SplitLogCounters.tot_mgr_get_data_queued.increment();
}

代码示例来源:origin: apache/hbase

public void getDataSetWatchAsync() {
 watcher.getRecoverableZooKeeper().getZooKeeper()
   .getData(currentTask, watcher, new GetDataAsyncCallback(), null);
 SplitLogCounters.tot_wkr_get_data_queued.increment();
}

代码示例来源:origin: apache/hbase

/**
 * Async creates the specified node with the specified data.
 *
 * <p>Throws an exception if the node already exists.
 *
 * <p>The node created is persistent and open access.
 *
 * @param zkw zk reference
 * @param znode path of node to create
 * @param data data of node to create
 * @param cb the callback to use for the creation
 * @param ctx the context to use for the creation
 */
public static void asyncCreate(ZKWatcher zkw,
  String znode, byte [] data, final AsyncCallback.StringCallback cb,
  final Object ctx) {
 zkw.getRecoverableZooKeeper().getZooKeeper().create(znode, data,
   createACL(zkw, znode), CreateMode.PERSISTENT, cb, ctx);
}

代码示例来源:origin: apache/hbase

private void deleteNode(String path, Long retries) {
 SplitLogCounters.tot_mgr_node_delete_queued.increment();
 // Once a task znode is ready for delete, that is it is in the TASK_DONE
 // state, then no one should be writing to it anymore. That is no one
 // will be updating the znode version any more.
 this.watcher.getRecoverableZooKeeper().getZooKeeper()
   .delete(path, -1, new DeleteAsyncCallback(), retries);
}

代码示例来源:origin: apache/hbase

/**
 * Delete the specified node with the specified version.  Sets no watches.
 * Throws all exceptions.
 */
public static boolean deleteNode(ZKWatcher zkw, String node,
                 int version)
 throws KeeperException {
 try {
  zkw.getRecoverableZooKeeper().delete(node, version);
  return true;
 } catch(KeeperException.BadVersionException bve) {
  return false;
 } catch(InterruptedException ie) {
  zkw.interruptedException(ie);
  return false;
 }
}

代码示例来源:origin: apache/hbase

public void init() throws Exception {
 this.zk = spy(super.getRecoverableZooKeeper());
 doThrow(new KeeperException.ConnectionLossException())
   .when(zk).getData("/hbase/replication/hfile-refs", null, new Stat());
}

代码示例来源:origin: apache/hbase

public void init() throws Exception {
 this.zk = spy(super.getRecoverableZooKeeper());
 doThrow(new KeeperException.ConnectionLossException())
  .when(zk).getChildren("/hbase/replication/rs", null);
}

代码示例来源:origin: apache/hbase

/**
 * Get znode data. Does not set a watcher.
 *
 * @return ZNode data, null if the node does not exist or if there is an error.
 */
public static byte [] getData(ZKWatcher zkw, String znode)
  throws KeeperException, InterruptedException {
 try {
  byte [] data = zkw.getRecoverableZooKeeper().getData(znode, null, null);
  logRetrievedMsg(zkw, znode, data, false);
  return data;
 } catch (KeeperException.NoNodeException e) {
  LOG.debug(zkw.prefix("Unable to get data of znode " + znode + " " +
    "because node does not exist (not an error)"));
  return null;
 } catch (KeeperException e) {
  LOG.warn(zkw.prefix("Unable to get data of znode " + znode), e);
  zkw.keeperException(e);
  return null;
 }
}

代码示例来源:origin: apache/hbase

private void setExpireBefore(long time)
  throws KeeperException, InterruptedException, IOException {
 ZooKeeper zk = UTIL.getZooKeeperWatcher().getRecoverableZooKeeper().getZooKeeper();
 if (zk.exists(ZooKeeperScanPolicyObserver.NODE, false) == null) {
  zk.create(ZooKeeperScanPolicyObserver.NODE, Bytes.toBytes(time), ZooDefs.Ids.OPEN_ACL_UNSAFE,
   CreateMode.PERSISTENT);
 } else {
  zk.setData(ZooKeeperScanPolicyObserver.NODE, Bytes.toBytes(time), -1);
 }
}

代码示例来源:origin: apache/hbase

/**
 * signal the workers that a task was resubmitted by creating the RESCAN node.
 */
private void rescan(long retries) {
 // The RESCAN node will be deleted almost immediately by the
 // SplitLogManager as soon as it is created because it is being
 // created in the DONE state. This behavior prevents a buildup
 // of RESCAN nodes. But there is also a chance that a SplitLogWorker
 // might miss the watch-trigger that creation of RESCAN node provides.
 // Since the TimeoutMonitor will keep resubmitting UNASSIGNED tasks
 // therefore this behavior is safe.
 SplitLogTask slt = new SplitLogTask.Done(this.details.getServerName());
 this.watcher
   .getRecoverableZooKeeper()
   .getZooKeeper()
   .create(ZKSplitLog.getRescanNode(watcher), slt.toByteArray(), Ids.OPEN_ACL_UNSAFE,
    CreateMode.EPHEMERAL_SEQUENTIAL, new CreateRescanAsyncCallback(), Long.valueOf(retries));
}

代码示例来源:origin: apache/hbase

private static byte[] getDataInternal(ZKWatcher zkw, String znode, Stat stat,
                   boolean watcherSet)
  throws KeeperException {
 try {
  byte [] data = zkw.getRecoverableZooKeeper().getData(znode, zkw, stat);
  logRetrievedMsg(zkw, znode, data, watcherSet);
  return data;
 } catch (KeeperException.NoNodeException e) {
  // This log can get pretty annoying when we cycle on 100ms waits.
  // Enable trace if you really want to see it.
  LOG.trace(zkw.prefix("Unable to get data of znode " + znode + " " +
   "because node does not exist (not an error)"));
  return null;
 } catch (KeeperException e) {
  LOG.warn(zkw.prefix("Unable to get data of znode " + znode), e);
  zkw.keeperException(e);
  return null;
 } catch (InterruptedException e) {
  LOG.warn(zkw.prefix("Unable to get data of znode " + znode), e);
  zkw.interruptedException(e);
  return null;
 }
}

代码示例来源:origin: apache/hbase

private static void resetAcls(final ZKWatcher zkw, final String znode,
               final boolean eraseAcls) throws Exception {
 List<String> children = ZKUtil.listChildrenNoWatch(zkw, znode);
 if (children != null) {
  for (String child: children) {
   resetAcls(zkw, ZNodePaths.joinZNode(znode, child), eraseAcls);
  }
 }
 ZooKeeper zk = zkw.getRecoverableZooKeeper().getZooKeeper();
 if (eraseAcls) {
  LOG.info(" - erase ACLs for " + znode);
  zk.setACL(znode, ZooDefs.Ids.OPEN_ACL_UNSAFE, -1);
 } else {
  LOG.info(" - set ACLs for " + znode);
  zk.setACL(znode, ZKUtil.createACL(zkw, znode, true), -1);
 }
}

代码示例来源:origin: apache/hbase

/**
 * Check if the specified node exists.  Sets no watches.
 *
 * @param zkw zk reference
 * @param znode path of node to watch
 * @return version of the node if it exists, -1 if does not exist
 * @throws KeeperException if unexpected zookeeper exception
 */
public static int checkExists(ZKWatcher zkw, String znode)
 throws KeeperException {
 try {
  Stat s = zkw.getRecoverableZooKeeper().exists(znode, null);
  return s != null ? s.getVersion() : -1;
 } catch (KeeperException e) {
  LOG.warn(zkw.prefix("Unable to set watcher on znode (" + znode + ")"), e);
  zkw.keeperException(e);
  return -1;
 } catch (InterruptedException e) {
  LOG.warn(zkw.prefix("Unable to set watcher on znode (" + znode + ")"), e);
  zkw.interruptedException(e);
  return -1;
 }
}

代码示例来源:origin: apache/hbase

private static void deleteNodeFailSilent(ZKWatcher zkw,
  DeleteNodeFailSilent dnfs) throws KeeperException {
 DeleteRequest delete = (DeleteRequest)toZooKeeperOp(zkw, dnfs).toRequestRecord();
 try {
  zkw.getRecoverableZooKeeper().delete(delete.getPath(), delete.getVersion());
 } catch(KeeperException.NoNodeException nne) {
 } catch(InterruptedException ie) {
  zkw.interruptedException(ie);
 }
}

代码示例来源:origin: apache/hbase

private static void createAndFailSilent(ZKWatcher zkw, CreateAndFailSilent cafs)
 throws KeeperException {
 CreateRequest create = (CreateRequest)toZooKeeperOp(zkw, cafs).toRequestRecord();
 String znode = create.getPath();
 try {
  RecoverableZooKeeper zk = zkw.getRecoverableZooKeeper();
  if (zk.exists(znode, false) == null) {
   zk.create(znode, create.getData(), create.getAcl(), CreateMode.fromFlag(create.getFlags()));
  }
 } catch(KeeperException.NodeExistsException nee) {
 } catch(KeeperException.NoAuthException nee){
  try {
   if (null == zkw.getRecoverableZooKeeper().exists(znode, false)) {
    // If we failed to create the file and it does not already exist.
    throw(nee);
   }
  } catch (InterruptedException ie) {
   zkw.interruptedException(ie);
  }
 } catch(InterruptedException ie) {
  zkw.interruptedException(ie);
 }
}

代码示例来源:origin: apache/hbase

/**
 * Finally, we check the ACLs of a node outside of the /hbase hierarchy and
 * verify that its ACL is simply 'hbase:Perms.ALL'.
 */
@Test
public void testOutsideHBaseNodeACL() throws Exception {
 if (!secureZKAvailable) {
  return;
 }
 ZKUtil.createWithParents(zkw, "/testACLNode");
 List<ACL> acls = zkw.getRecoverableZooKeeper().getZooKeeper()
   .getACL("/testACLNode", new Stat());
 assertEquals(1, acls.size());
 assertEquals("sasl", acls.get(0).getId().getScheme());
 assertEquals("hbase", acls.get(0).getId().getId());
 assertEquals(ZooDefs.Perms.ALL, acls.get(0).getPerms());
}

代码示例来源:origin: apache/hbase

@Test
public void testDeleteChildrenRecursivelyMultiOrSequential() throws Exception {
 String parentZNode1 = "/testdeleteChildren1";
 String parentZNode2 = "/testdeleteChildren2";
 String parentZNode3 = "/testdeleteChildren3";
 createZNodeTree(parentZNode1);
 createZNodeTree(parentZNode2);
 createZNodeTree(parentZNode3);
 ZKUtil.deleteChildrenRecursivelyMultiOrSequential(zkw, true, parentZNode1, parentZNode2,
  parentZNode3);
 assertTrue("Wrongly deleted parent znode 1!", ZKUtil.checkExists(zkw, parentZNode1) > -1);
 List<String> children = zkw.getRecoverableZooKeeper().getChildren(parentZNode1, false);
 assertTrue("Failed to delete child znodes of parent znode 1!", 0 == children.size());
 assertTrue("Wrongly deleted parent znode 2!", ZKUtil.checkExists(zkw, parentZNode2) > -1);
 children = zkw.getRecoverableZooKeeper().getChildren(parentZNode2, false);
 assertTrue("Failed to delete child znodes of parent znode 1!", 0 == children.size());
 assertTrue("Wrongly deleted parent znode 3!", ZKUtil.checkExists(zkw, parentZNode3) > -1);
 children = zkw.getRecoverableZooKeeper().getChildren(parentZNode3, false);
 assertTrue("Failed to delete child znodes of parent znode 1!", 0 == children.size());
}

代码示例来源:origin: apache/hbase

/**
 * Verifies that for the given root node, it should delete all the child nodes
 * recursively using multi-update api.
 */
@Test
public void testdeleteChildrenRecursivelyMulti() throws Exception {
 String parentZNode = "/testRootMulti";
 createZNodeTree(parentZNode);
 ZKUtil.deleteChildrenRecursivelyMultiOrSequential(zkw, true, parentZNode);
 assertTrue("Wrongly deleted parent znode!",
   ZKUtil.checkExists(zkw, parentZNode) > -1);
 List<String> children = zkw.getRecoverableZooKeeper().getChildren(
   parentZNode, false);
 assertTrue("Failed to delete child znodes!", 0 == children.size());
}

代码示例来源:origin: apache/hbase

@Test
public void testOrphanTaskAcquisition() throws Exception {
 LOG.info("TestOrphanTaskAcquisition");
 String tasknode = ZKSplitLog.getEncodedNodeName(zkw, "orphan/test/slash");
 SplitLogTask slt = new SplitLogTask.Owned(master.getServerName());
 zkw.getRecoverableZooKeeper().create(tasknode, slt.toByteArray(), Ids.OPEN_ACL_UNSAFE,
   CreateMode.PERSISTENT);
 slm = new SplitLogManager(master, conf);
 waitForCounter(tot_mgr_orphan_task_acquired, 0, 1, to/2);
 Task task = findOrCreateOrphanTask(tasknode);
 assertTrue(task.isOrphan());
 waitForCounter(tot_mgr_heartbeat, 0, 1, to/2);
 assertFalse(task.isUnassigned());
 long curt = System.currentTimeMillis();
 assertTrue((task.last_update <= curt) &&
   (task.last_update > (curt - 1000)));
 LOG.info("waiting for manager to resubmit the orphan task");
 waitForCounter(tot_mgr_resubmit, 0, 1, to + to/2);
 assertTrue(task.isUnassigned());
 waitForCounter(tot_mgr_rescan, 0, 1, to + to/2);
}

相关文章