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


Java ZKUtilOp.createAndFailSilent方法代码示例

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


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

示例1: addPeer

import org.apache.hadoop.hbase.zookeeper.ZKUtil.ZKUtilOp; //导入方法依赖的package包/类
@Override
public void addPeer(String id, ReplicationPeerConfig peerConfig, String tableCFs)
    throws ReplicationException {
  try {
    if (peerExists(id)) {
      throw new IllegalArgumentException("Cannot add a peer with id=" + id
          + " because that id already exists.");
    }

    if(id.contains("-")){
      throw new IllegalArgumentException("Found invalid peer name:" + id);
    }

    ZKUtil.createWithParents(this.zookeeper, this.peersZNode);
    List<ZKUtilOp> listOfOps = new ArrayList<ZKUtil.ZKUtilOp>();
    ZKUtilOp op1 = ZKUtilOp.createAndFailSilent(ZKUtil.joinZNode(this.peersZNode, id),
      toByteArray(peerConfig));
    // There is a race (if hbase.zookeeper.useMulti is false)
    // b/w PeerWatcher and ReplicationZookeeper#add method to create the
    // peer-state znode. This happens while adding a peer
    // The peer state data is set as "ENABLED" by default.
    ZKUtilOp op2 = ZKUtilOp.createAndFailSilent(getPeerStateNode(id), ENABLED_ZNODE_BYTES);
    String tableCFsStr = (tableCFs == null) ? "" : tableCFs;
    ZKUtilOp op3 = ZKUtilOp.createAndFailSilent(getTableCFsNode(id), Bytes.toBytes(tableCFsStr));
    listOfOps.add(op1);
    listOfOps.add(op2);
    listOfOps.add(op3);
    ZKUtil.multiOrSequential(this.zookeeper, listOfOps, false);
    // A peer is enabled by default
  } catch (KeeperException e) {
    throw new ReplicationException("Could not add peer with id=" + id
        + ", peerConfif=>" + peerConfig, e);
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:35,代码来源:ReplicationPeersZKImpl.java

示例2: copyQueuesFromRSUsingMulti

import org.apache.hadoop.hbase.zookeeper.ZKUtil.ZKUtilOp; //导入方法依赖的package包/类
/**
 * It "atomically" copies all the hlogs queues from another region server and returns them all
 * sorted per peer cluster (appended with the dead server's znode).
 * @param znode
 * @return HLog queues sorted per peer cluster
 */
public SortedMap<String, SortedSet<String>> copyQueuesFromRSUsingMulti(String znode) {
  SortedMap<String, SortedSet<String>> queues = new TreeMap<String, SortedSet<String>>();
  String deadRSZnodePath = ZKUtil.joinZNode(rsZNode, znode);// hbase/replication/rs/deadrs
  List<String> peerIdsToProcess = null;
  List<ZKUtilOp> listOfOps = new ArrayList<ZKUtil.ZKUtilOp>();
  try {
    peerIdsToProcess = ZKUtil.listChildrenNoWatch(this.zookeeper, deadRSZnodePath);
    if (peerIdsToProcess == null) return queues; // node already processed
    for (String peerId : peerIdsToProcess) {
      String newPeerId = peerId + "-" + znode;
      String newPeerZnode = ZKUtil.joinZNode(this.rsServerNameZnode, newPeerId);
      // check the logs queue for the old peer cluster
      String oldClusterZnode = ZKUtil.joinZNode(deadRSZnodePath, peerId);
      List<String> hlogs = ZKUtil.listChildrenNoWatch(this.zookeeper, oldClusterZnode);
      if (hlogs == null || hlogs.size() == 0) {
        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
        continue; // empty log queue.
      }
      // create the new cluster znode
      SortedSet<String> logQueue = new TreeSet<String>();
      queues.put(newPeerId, logQueue);
      ZKUtilOp op = ZKUtilOp.createAndFailSilent(newPeerZnode, HConstants.EMPTY_BYTE_ARRAY);
      listOfOps.add(op);
      // get the offset of the logs and set it to new znodes
      for (String hlog : hlogs) {
        String oldHlogZnode = ZKUtil.joinZNode(oldClusterZnode, hlog);
        byte[] logOffset = ZKUtil.getData(this.zookeeper, oldHlogZnode);
        LOG.debug("Creating " + hlog + " with data " + Bytes.toString(logOffset));
        String newLogZnode = ZKUtil.joinZNode(newPeerZnode, hlog);
        listOfOps.add(ZKUtilOp.createAndFailSilent(newLogZnode, logOffset));
        // add ops for deleting
        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldHlogZnode));
        logQueue.add(hlog);
      }
      // add delete op for peer
      listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
    }
    // add delete op for dead rs
    listOfOps.add(ZKUtilOp.deleteNodeFailSilent(deadRSZnodePath));
    LOG.debug(" The multi list size is: " + listOfOps.size());
    ZKUtil.multiOrSequential(this.zookeeper, listOfOps, false);
    LOG.info("Atomically moved the dead regionserver logs. ");
  } catch (KeeperException e) {
    // Multi call failed; it looks like some other regionserver took away the logs.
    LOG.warn("Got exception in copyQueuesFromRSUsingMulti: ", e);
    queues.clear();
  }
  return queues;
}
 
开发者ID:fengchen8086,项目名称:LCIndex-HBase-0.94.16,代码行数:56,代码来源:ReplicationZookeeper.java

示例3: copyQueuesFromRSUsingMulti

import org.apache.hadoop.hbase.zookeeper.ZKUtil.ZKUtilOp; //导入方法依赖的package包/类
/**
 * It "atomically" copies all the hlogs queues from another region server and returns them all
 * sorted per peer cluster (appended with the dead server's znode).
 * @param znode pertaining to the region server to copy the queues from
 * @return HLog queues sorted per peer cluster
 */
private SortedMap<String, SortedSet<String>> copyQueuesFromRSUsingMulti(String znode) {
  SortedMap<String, SortedSet<String>> queues = new TreeMap<String, SortedSet<String>>();
  // hbase/replication/rs/deadrs
  String deadRSZnodePath = ZKUtil.joinZNode(this.queuesZNode, znode);
  List<String> peerIdsToProcess = null;
  List<ZKUtilOp> listOfOps = new ArrayList<ZKUtil.ZKUtilOp>();
  try {
    peerIdsToProcess = ZKUtil.listChildrenNoWatch(this.zookeeper, deadRSZnodePath);
    if (peerIdsToProcess == null) return queues; // node already processed
    for (String peerId : peerIdsToProcess) {
      ReplicationQueueInfo replicationQueueInfo = new ReplicationQueueInfo(peerId);
      if (!peerExists(replicationQueueInfo.getPeerId())) {
        LOG.warn("Peer " + peerId + " didn't exist, skipping the replay");
        // Protection against moving orphaned queues
        continue;
      }
      String newPeerId = peerId + "-" + znode;
      String newPeerZnode = ZKUtil.joinZNode(this.myQueuesZnode, newPeerId);
      // check the logs queue for the old peer cluster
      String oldClusterZnode = ZKUtil.joinZNode(deadRSZnodePath, peerId);
      List<String> hlogs = ZKUtil.listChildrenNoWatch(this.zookeeper, oldClusterZnode);
      if (hlogs == null || hlogs.size() == 0) {
        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
        continue; // empty log queue.
      }
      // create the new cluster znode
      SortedSet<String> logQueue = new TreeSet<String>();
      queues.put(newPeerId, logQueue);
      ZKUtilOp op = ZKUtilOp.createAndFailSilent(newPeerZnode, HConstants.EMPTY_BYTE_ARRAY);
      listOfOps.add(op);
      // get the offset of the logs and set it to new znodes
      for (String hlog : hlogs) {
        String oldHlogZnode = ZKUtil.joinZNode(oldClusterZnode, hlog);
        byte[] logOffset = ZKUtil.getData(this.zookeeper, oldHlogZnode);
        LOG.debug("Creating " + hlog + " with data " + Bytes.toString(logOffset));
        String newLogZnode = ZKUtil.joinZNode(newPeerZnode, hlog);
        listOfOps.add(ZKUtilOp.createAndFailSilent(newLogZnode, logOffset));
        // add ops for deleting
        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldHlogZnode));
        logQueue.add(hlog);
      }
      // add delete op for peer
      listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
    }
    // add delete op for dead rs
    listOfOps.add(ZKUtilOp.deleteNodeFailSilent(deadRSZnodePath));
    LOG.debug(" The multi list size is: " + listOfOps.size());
    ZKUtil.multiOrSequential(this.zookeeper, listOfOps, false);
    LOG.info("Atomically moved the dead regionserver logs. ");
  } catch (KeeperException e) {
    // Multi call failed; it looks like some other regionserver took away the logs.
    LOG.warn("Got exception in copyQueuesFromRSUsingMulti: ", e);
    queues.clear();
  }
  return queues;
}
 
开发者ID:tenggyut,项目名称:HIndex,代码行数:63,代码来源:ReplicationQueuesZKImpl.java


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