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


Java ZKAssign类代码示例

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


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

示例1: startSplitTransaction

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
/**
 * Creates a new ephemeral node in the PENDING_SPLIT state for the specified region. Create it
 * ephemeral in case regionserver dies mid-split.
 * <p>
 * Does not transition nodes from other states. If a node already exists for this region, an
 * Exception will be thrown.
 * @param parent region to be created as offline
 * @param serverName server event originates from
 * @param hri_a daughter region
 * @param hri_b daughter region
 * @throws IOException
 */

@Override
public void startSplitTransaction(HRegion parent, ServerName serverName, HRegionInfo hri_a,
    HRegionInfo hri_b) throws IOException {

  HRegionInfo region = parent.getRegionInfo();
  try {

    LOG.debug(watcher.prefix("Creating ephemeral node for " + region.getEncodedName()
        + " in PENDING_SPLIT state"));
    byte[] payload = HRegionInfo.toDelimitedByteArray(hri_a, hri_b);
    RegionTransition rt =
        RegionTransition.createRegionTransition(RS_ZK_REQUEST_REGION_SPLIT,
          region.getRegionName(), serverName, payload);
    String node = ZKAssign.getNodeName(watcher, region.getEncodedName());
    if (!ZKUtil.createEphemeralNodeAndWatch(watcher, node, rt.toByteArray())) {
      throw new IOException("Failed create of ephemeral " + node);
    }

  } catch (KeeperException e) {
    throw new IOException("Failed creating PENDING_SPLIT znode on "
        + parent.getRegionInfo().getRegionNameAsString(), e);
  }

}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:38,代码来源:ZKSplitTransactionCoordination.java

示例2: startRegionMergeTransaction

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
/**
 * Creates a new ephemeral node in the PENDING_MERGE state for the merged region.
 * Create it ephemeral in case regionserver dies mid-merge.
 *
 * <p>
 * Does not transition nodes from other states. If a node already exists for
 * this region, a {@link org.apache.zookeeper.KeeperException.NodeExistsException} will be thrown.
 *
 * @param region region to be created as offline
 * @param serverName server event originates from
 * @throws IOException
 */
@Override
public void startRegionMergeTransaction(final HRegionInfo region, final ServerName serverName,
    final HRegionInfo a, final HRegionInfo b) throws IOException {
  LOG.debug(watcher.prefix("Creating ephemeral node for " + region.getEncodedName()
      + " in PENDING_MERGE state"));
  byte[] payload = HRegionInfo.toDelimitedByteArray(region, a, b);
  RegionTransition rt =
      RegionTransition.createRegionTransition(RS_ZK_REQUEST_REGION_MERGE, region.getRegionName(),
        serverName, payload);
  String node = ZKAssign.getNodeName(watcher, region.getEncodedName());
  try {
    if (!ZKUtil.createEphemeralNodeAndWatch(watcher, node, rt.toByteArray())) {
      throw new IOException("Failed create of ephemeral " + node);
    }
  } catch (KeeperException e) {
    throw new IOException(e);
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:31,代码来源:ZkRegionMergeCoordination.java

示例3: setOfflineInZooKeeper

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
/**
 * Set region as OFFLINED up in zookeeper
 *
 * @param state
 * @return the version of the offline node if setting of the OFFLINE node was
 *         successful, -1 otherwise.
 */
private int setOfflineInZooKeeper(final RegionState state, final ServerName destination) {
  if (!state.isClosed() && !state.isOffline()) {
    String msg = "Unexpected state : " + state + " .. Cannot transit it to OFFLINE.";
    this.server.abort(msg, new IllegalStateException(msg));
    return -1;
  }
  regionStates.updateRegionState(state.getRegion(), State.OFFLINE);
  int versionOfOfflineNode;
  try {
    // get the version after setting the znode to OFFLINE
    versionOfOfflineNode = ZKAssign.createOrForceNodeOffline(watcher,
      state.getRegion(), destination);
    if (versionOfOfflineNode == -1) {
      LOG.warn("Attempted to create/force node into OFFLINE state before "
          + "completing assignment but failed to do so for " + state);
      return -1;
    }
  } catch (KeeperException e) {
    server.abort("Unexpected ZK exception creating/setting node OFFLINE", e);
    return -1;
  }
  return versionOfOfflineNode;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:31,代码来源:AssignmentManager.java

示例4: asyncSetOfflineInZooKeeper

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
/**
 * Set region as OFFLINED up in zookeeper asynchronously.
 * @param state
 * @return True if we succeeded, false otherwise (State was incorrect or failed
 * updating zk).
 */
private boolean asyncSetOfflineInZooKeeper(final RegionState state,
    final AsyncCallback.StringCallback cb, final ServerName destination) {
  if (!state.isClosed() && !state.isOffline()) {
    this.server.abort("Unexpected state trying to OFFLINE; " + state,
      new IllegalStateException());
    return false;
  }
  regionStates.updateRegionState(state.getRegion(), State.OFFLINE);
  try {
    ZKAssign.asyncCreateNodeOffline(watcher, state.getRegion(),
      destination, cb, state);
  } catch (KeeperException e) {
    if (e instanceof NodeExistsException) {
      LOG.warn("Node for " + state.getRegion() + " already exists");
    } else {
      server.abort("Unexpected ZK exception creating/setting node OFFLINE", e);
    }
    return false;
  }
  return true;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:28,代码来源:AssignmentManager.java

示例5: deleteNodeInStates

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
private boolean deleteNodeInStates(String encodedName,
    String desc, ServerName sn, EventType... types) {
  try {
    for (EventType et: types) {
      if (ZKAssign.deleteNode(watcher, encodedName, et, sn)) {
        return true;
      }
    }
    LOG.info("Failed to delete the " + desc + " node for "
      + encodedName + ". The node type may not match");
  } catch (NoNodeException e) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("The " + desc + " node for " + encodedName + " already deleted");
    }
  } catch (KeeperException ke) {
    server.abort("Unexpected ZK exception deleting " + desc
      + " node for the region " + encodedName, ke);
  }
  return false;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:21,代码来源:AssignmentManager.java

示例6: onRegionOpen

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
private void onRegionOpen(final HRegionInfo hri, final ServerName sn, long openSeqNum) {
  regionOnline(hri, sn, openSeqNum);
  if (useZKForAssignment) {
    try {
      // Delete the ZNode if exists
      ZKAssign.deleteNodeFailSilent(watcher, hri);
    } catch (KeeperException ke) {
      server.abort("Unexpected ZK exception deleting node " + hri, ke);
    }
  }

  // reset the count, if any
  failedOpenTracker.remove(hri.getEncodedName());
  if (getTableStateManager().isTableState(hri.getTable(),
      ZooKeeperProtos.Table.State.DISABLED, ZooKeeperProtos.Table.State.DISABLING)) {
    invokeUnAssign(hri);
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:19,代码来源:AssignmentManager.java

示例7: createRegions

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
private MiniHBaseCluster createRegions(String tableName)
    throws InterruptedException, ZooKeeperConnectionException, IOException,
    KeeperException {
  MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
  log("Waiting for active/ready master");
  cluster.waitForActiveAndReadyMaster();
  zkw = new ZooKeeperWatcher(conf, "testOpenedRegionHandler", null);

  // Create a table with regions
  byte[] table = Bytes.toBytes(tableName);
  byte[] family = Bytes.toBytes("family");
  TEST_UTIL.createTable(table, family);

  //wait till the regions are online
  log("Waiting for no more RIT");
  ZKAssign.blockUntilNoRIT(zkw);

  return cluster;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:20,代码来源:TestOpenedRegionHandler.java

示例8: verifyRegionState

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
/**
 * Verifies that the specified region is in the specified state in ZooKeeper.
 * <p>
 * Returns true if region is in transition and in the specified state in
 * ZooKeeper.  Returns false if the region does not exist in ZK or is in
 * a different state.
 * <p>
 * Method synchronizes() with ZK so will yield an up-to-date result but is
 * a slow read.
 * @param zkw
 * @param region
 * @param expectedState
 * @return true if region exists and is in expected state
 * @throws DeserializationException
 */
static boolean verifyRegionState(ZooKeeperWatcher zkw, HRegionInfo region, EventType expectedState)
throws KeeperException, DeserializationException {
  String encoded = region.getEncodedName();

  String node = ZKAssign.getNodeName(zkw, encoded);
  zkw.sync(node);

  // Read existing data of the node
  byte [] existingBytes = null;
  try {
    existingBytes = ZKUtil.getDataAndWatch(zkw, node);
  } catch (KeeperException.NoNodeException nne) {
    return false;
  } catch (KeeperException e) {
    throw e;
  }
  if (existingBytes == null) return false;
  RegionTransition rt = RegionTransition.parseFrom(existingBytes);
  return rt.getEventType().equals(expectedState);
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:36,代码来源:Mocking.java

示例9: testOpenCloseByMasterWithZNode

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
@Test(timeout = 60000)
public void testOpenCloseByMasterWithZNode() throws Exception {

  ZKAssign.createNodeClosing(HTU.getZooKeeperWatcher(), hri, getRS().getServerName());

  AdminProtos.CloseRegionRequest crr = RequestConverter.buildCloseRegionRequest(
    getRS().getServerName(), regionName, true);
  AdminProtos.CloseRegionResponse responseClose = getRS().rpcServices.closeRegion(null, crr);
  Assert.assertTrue(responseClose.getClosed());

  checkRegionIsClosed(HTU, getRS(), hri);

  ZKAssign.deleteClosedNode(HTU.getZooKeeperWatcher(), hri.getEncodedName(),
    getRS().getServerName());

  openRegion(HTU, getRS(), hri);
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:18,代码来源:TestRegionServerNoMaster.java

示例10: OpenRegion

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
private void OpenRegion(Server server, RegionServerServices rss,
    HTableDescriptor htd, HRegionInfo hri, OpenRegionCoordination coordination)
throws IOException, NodeExistsException, KeeperException, DeserializationException {
  // Create it OFFLINE node, which is what Master set before sending OPEN RPC
  ZKAssign.createNodeOffline(server.getZooKeeper(), hri, server.getServerName());

  OpenRegionCoordination.OpenRegionDetails ord =
    coordination.getDetailsForNonCoordinatedOpening();
  OpenRegionHandler openHandler =
    new OpenRegionHandler(server, rss, hri, htd, -1, coordination, ord);
  rss.getRegionsInTransitionInRS().put(hri.getEncodedNameAsBytes(), Boolean.TRUE);
  openHandler.process();
  // This parse is not used?
  RegionTransition.parseFrom(ZKAssign.getData(server.getZooKeeper(), hri.getEncodedName()));
  // delete the node, which is what Master do after the region is opened
  ZKAssign.deleteNode(server.getZooKeeper(), hri.getEncodedName(),
    EventType.RS_ZK_REGION_OPENED, server.getServerName());
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:19,代码来源:TestCloseRegionHandler.java

示例11: setEncodingConf

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
private void setEncodingConf(DataBlockEncoding encoding,
    boolean onlineChange) throws Exception {
  LOG.debug("Setting CF encoding to " + encoding + " (ordinal="
    + encoding.ordinal() + "), onlineChange=" + onlineChange);
  hcd.setDataBlockEncoding(encoding);
  try (Admin admin = TEST_UTIL.getConnection().getAdmin()) {
    if (!onlineChange) {
      admin.disableTable(tableName);
    }
    admin.modifyColumn(tableName, hcd);
    if (!onlineChange) {
      admin.enableTable(tableName);
    }
  }
  // This is a unit test, not integration test. So let's
  // wait for regions out of transition. Otherwise, for online
  // encoding change, verification phase may be flaky because
  // regions could be still in transition.
  ZKAssign.blockUntilNoRIT(TEST_UTIL.getZooKeeperWatcher());
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:21,代码来源:TestChangingEncoding.java

示例12: offlineDisabledRegion

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
public void offlineDisabledRegion(HRegionInfo regionInfo) {
  // Disabling so should not be reassigned, just delete the CLOSED node
  LOG.debug("Table being disabled so deleting ZK node and removing from " +
      "regions in transition, skipping assignment of region " +
        regionInfo.getRegionNameAsString());
  try {
    if (!ZKAssign.deleteClosedNode(watcher, regionInfo.getEncodedName())) {
      // Could also be in OFFLINE mode
      ZKAssign.deleteOfflineNode(watcher, regionInfo.getEncodedName());
    }
  } catch (KeeperException.NoNodeException nne) {
    LOG.debug("Tried to delete closed node for " + regionInfo + " but it " +
        "does not exist so just offlining");
  } catch (KeeperException e) {
    this.master.abort("Error deleting CLOSED node in ZK", e);
  }
  regionOffline(regionInfo);
}
 
开发者ID:fengchen8086,项目名称:LCIndex-HBase-0.94.16,代码行数:19,代码来源:AssignmentManager.java

示例13: isSplitOrSplitting

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
/**
 * @param path
 * @return True if znode is in SPLIT or SPLITTING state.
 * @throws KeeperException Can happen if the znode went away in meantime.
 */
private boolean isSplitOrSplitting(final String path) throws KeeperException {
  boolean result = false;
  // This may fail if the SPLIT or SPLITTING znode gets cleaned up before we
  // can get data from it.
  RegionTransitionData data = ZKAssign.getData(master.getZooKeeper(), path);
  EventType evt = data.getEventType();
  switch (evt) {
  case RS_ZK_REGION_SPLIT:
  case RS_ZK_REGION_SPLITTING:
    result = true;
    break;
  default:
    break;
  }
  return result;
}
 
开发者ID:fengchen8086,项目名称:LCIndex-HBase-0.94.16,代码行数:22,代码来源:AssignmentManager.java

示例14: fakeRegionServerRegionOpenInZK

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
/**
 * Fakes the regionserver-side zk transitions of a region open.
 * @param w ZooKeeperWatcher to use.
 * @param sn Name of the regionserver doing the 'opening'
 * @param hri Region we're 'opening'.
 * @throws KeeperException
 * @throws DeserializationException
 */
static void fakeRegionServerRegionOpenInZK(HMaster master,  final ZooKeeperWatcher w,
    final ServerName sn, final HRegionInfo hri)
  throws KeeperException, DeserializationException, InterruptedException {
  // Wait till the we region is ready to be open in RIT.
  waitForRegionPendingOpenInRIT(master.getAssignmentManager(), hri.getEncodedName());

  // Get current versionid else will fail on transition from OFFLINE to OPENING below
  int versionid = ZKAssign.getVersion(w, hri);
  assertNotSame(-1, versionid);
  // This uglyness below is what the openregionhandler on RS side does.  I
  // looked at exposing the method over in openregionhandler but its just a
  // one liner and its deep over in another package so just repeat it below.
  versionid = ZKAssign.transitionNode(w, hri, sn,
    EventType.M_ZK_REGION_OFFLINE, EventType.RS_ZK_REGION_OPENING, versionid);
  assertNotSame(-1, versionid);
  // Move znode from OPENING to OPENED as RS does on successful open.
  versionid = ZKAssign.transitionNodeOpened(w, hri, sn, versionid);
  assertNotSame(-1, versionid);
  // We should be done now.  The master open handler will notice the
  // transition and remove this regions znode.
}
 
开发者ID:tenggyut,项目名称:HIndex,代码行数:30,代码来源:Mocking.java

示例15: setEncodingConf

import org.apache.hadoop.hbase.zookeeper.ZKAssign; //导入依赖的package包/类
private void setEncodingConf(DataBlockEncoding encoding,
    boolean onlineChange) throws Exception {
  LOG.debug("Setting CF encoding to " + encoding + " (ordinal="
    + encoding.ordinal() + "), onlineChange=" + onlineChange);
  hcd.setDataBlockEncoding(encoding);
  if (!onlineChange) {
    admin.disableTable(tableName);
  }
  admin.modifyColumn(tableName, hcd);
  if (!onlineChange) {
    admin.enableTable(tableName);
  }
  // This is a unit test, not integration test. So let's
  // wait for regions out of transition. Otherwise, for online
  // encoding change, verification phase may be flaky because
  // regions could be still in transition.
  ZKAssign.blockUntilNoRIT(TEST_UTIL.getZooKeeperWatcher());
}
 
开发者ID:tenggyut,项目名称:HIndex,代码行数:19,代码来源:TestChangingEncoding.java


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