當前位置: 首頁>>代碼示例>>Java>>正文


Java HRegionInfo.isSplit方法代碼示例

本文整理匯總了Java中org.apache.hadoop.hbase.HRegionInfo.isSplit方法的典型用法代碼示例。如果您正苦於以下問題:Java HRegionInfo.isSplit方法的具體用法?Java HRegionInfo.isSplit怎麽用?Java HRegionInfo.isSplit使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.hadoop.hbase.HRegionInfo的用法示例。


在下文中一共展示了HRegionInfo.isSplit方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: initialize

import org.apache.hadoop.hbase.HRegionInfo; //導入方法依賴的package包/類
/**
 * Initialize namespace state cache by scanning meta table.
 */
private void initialize() throws IOException {
  List<NamespaceDescriptor> namespaces = this.master.listNamespaceDescriptors();
  for (NamespaceDescriptor namespace : namespaces) {
    addNamespace(namespace.getName());
    List<TableName> tables = this.master.listTableNamesByNamespace(namespace.getName());
    for (TableName table : tables) {
      if (table.isSystemTable()) {
        continue;
      }
      int regionCount = 0;
      Map<HRegionInfo, ServerName> regions =
          MetaScanner.allTableRegions(this.master.getConnection(), table);
      for (HRegionInfo info : regions.keySet()) {
        if (!info.isSplit()) {
          regionCount++;
        }
      }
      addTable(table, regionCount);
    }
  }
  LOG.info("Finished updating state of " + nsStateCache.size() + " namespaces. ");
  initialized = true;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:27,代碼來源:NamespaceStateManager.java

示例2: createRegionState

import org.apache.hadoop.hbase.HRegionInfo; //導入方法依賴的package包/類
/**
 * Add a region to RegionStates with the specified state.
 * If the region is already in RegionStates, this call has
 * no effect, and the original state is returned.
 *
 * @param hri the region info to create a state for
 * @param newState the state to the region in set to
 * @param serverName the server the region is transitioning on
 * @param lastHost the last server that hosts the region
 * @return the current state
 */
public synchronized RegionState createRegionState(final HRegionInfo hri,
    State newState, ServerName serverName, ServerName lastHost) {
  if (newState == null || (newState == State.OPEN && serverName == null)) {
    newState =  State.OFFLINE;
  }
  if (hri.isOffline() && hri.isSplit()) {
    newState = State.SPLIT;
    serverName = null;
  }
  String encodedName = hri.getEncodedName();
  RegionState regionState = regionStates.get(encodedName);
  if (regionState != null) {
    LOG.warn("Tried to create a state for a region already in RegionStates, "
      + "used existing: " + regionState + ", ignored new: " + newState);
  } else {
    regionState = new RegionState(hri, newState, serverName);
    putRegionState(regionState);
    if (newState == State.OPEN) {
      if (!serverName.equals(lastHost)) {
        LOG.warn("Open region's last host " + lastHost
          + " should be the same as the current one " + serverName
          + ", ignored the last and used the current one");
        lastHost = serverName;
      }
      lastAssignments.put(encodedName, lastHost);
      regionAssignments.put(hri, lastHost);
    } else if (!regionState.isUnassignable()) {
      regionsInTransition.put(encodedName, regionState);
    }
    if (lastHost != null && newState != State.SPLIT) {
      addToServerHoldings(lastHost, hri);
      if (newState != State.OPEN) {
        oldAssignments.put(encodedName, lastHost);
      }
    }
  }
  return regionState;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:50,代碼來源:RegionStates.java

示例3: processDeadRegion

import org.apache.hadoop.hbase.HRegionInfo; //導入方法依賴的package包/類
/**
 * Process a dead region from a dead RS. Checks if the region is disabled or
 * disabling or if the region has a partially completed split.
 * @param hri
 * @param assignmentManager
 * @return Returns true if specified region should be assigned, false if not.
 * @throws IOException
 */
private static boolean processDeadRegion(HRegionInfo hri, AssignmentManager assignmentManager)
throws IOException {
  boolean tablePresent = assignmentManager.getTableStateManager().isTablePresent(hri.getTable());
  if (!tablePresent) {
    LOG.info("The table " + hri.getTable() + " was deleted.  Hence not proceeding.");
    return false;
  }
  // If table is not disabled but the region is offlined,
  boolean disabled = assignmentManager.getTableStateManager().isTableState(hri.getTable(),
    ZooKeeperProtos.Table.State.DISABLED);
  if (disabled){
    LOG.info("The table " + hri.getTable() + " was disabled.  Hence not proceeding.");
    return false;
  }
  if (hri.isOffline() && hri.isSplit()) {
    // HBASE-7721: Split parent and daughters are inserted into hbase:meta as an atomic operation.
    // If the meta scanner saw the parent split, then it should see the daughters as assigned
    // to the dead server. We don't have to do anything.
    return false;
  }
  boolean disabling = assignmentManager.getTableStateManager().isTableState(hri.getTable(),
    ZooKeeperProtos.Table.State.DISABLING);
  if (disabling) {
    LOG.info("The table " + hri.getTable() + " is disabled.  Hence not assigning region" +
      hri.getEncodedName());
    return false;
  }
  return true;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:38,代碼來源:ServerCrashProcedure.java

示例4: cloneRegionInfo

import org.apache.hadoop.hbase.HRegionInfo; //導入方法依賴的package包/類
public static HRegionInfo cloneRegionInfo(TableName tableName, HRegionInfo snapshotRegionInfo) {
  HRegionInfo regionInfo = new HRegionInfo(tableName,
                    snapshotRegionInfo.getStartKey(), snapshotRegionInfo.getEndKey(),
                    snapshotRegionInfo.isSplit(), snapshotRegionInfo.getRegionId());
  regionInfo.setOffline(snapshotRegionInfo.isOffline());
  return regionInfo;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:8,代碼來源:RestoreSnapshotHelper.java

示例5: processRow

import org.apache.hadoop.hbase.HRegionInfo; //導入方法依賴的package包/類
@Override
public boolean processRow(Result rowResult) throws IOException {
  HRegionInfo info = getHRegionInfo(rowResult);
  if (info == null) {
    return true;
  }

  //skip over offline and split regions
  if (!(info.isOffline() || info.isSplit())) {
    return processRowInternal(rowResult);
  }
  return true;
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:14,代碼來源:MetaScanner.java

示例6: initialize

import org.apache.hadoop.hbase.HRegionInfo; //導入方法依賴的package包/類
/**
 * Initialize the region assignment snapshot by scanning the hbase:meta table
 * @throws IOException
 */
public void initialize() throws IOException {
  LOG.info("Start to scan the hbase:meta for the current region assignment " +
    "snappshot");
  // TODO: at some point this code could live in the MetaTableAccessor
  Visitor v = new Visitor() {
    @Override
    public boolean visit(Result result) throws IOException {
      try {
        if (result ==  null || result.isEmpty()) return true;
        RegionLocations rl = MetaTableAccessor.getRegionLocations(result);
        if (rl == null) return true;
        HRegionInfo hri = rl.getRegionLocation(0).getRegionInfo();
        if (hri == null) return true;
        if (hri.getTable() == null) return true;
        if (disabledTables.contains(hri.getTable())) {
          return true;
        }
        // Are we to include split parents in the list?
        if (excludeOfflinedSplitParents && hri.isSplit()) return true;
        HRegionLocation[] hrls = rl.getRegionLocations();

        // Add the current assignment to the snapshot for all replicas
        for (int i = 0; i < hrls.length; i++) {
          if (hrls[i] == null) continue;
          hri = hrls[i].getRegionInfo();
          if (hri == null) continue;
          addAssignment(hri, hrls[i].getServerName());
          addRegion(hri);
        }

        // the code below is to handle favored nodes
        byte[] favoredNodes = result.getValue(HConstants.CATALOG_FAMILY,
            FavoredNodeAssignmentHelper.FAVOREDNODES_QUALIFIER);
        if (favoredNodes == null) return true;
        // Add the favored nodes into assignment plan
        ServerName[] favoredServerList =
            FavoredNodeAssignmentHelper.getFavoredNodesList(favoredNodes);
        // Add the favored nodes into assignment plan
        existingAssignmentPlan.updateFavoredNodesMap(hri,
            Arrays.asList(favoredServerList));
        return true;
      } catch (RuntimeException e) {
        LOG.error("Catche remote exception " + e.getMessage() +
            " when processing" + result);
        throw e;
      }
    }
  };
  // Scan hbase:meta to pick up user regions
  MetaTableAccessor.fullScan(connection, v);
  //regionToRegionServerMap = regions;
  LOG.info("Finished to scan the hbase:meta for the current region assignment" +
    "snapshot");
}
 
開發者ID:fengchen8086,項目名稱:ditb,代碼行數:59,代碼來源:SnapshotOfRegionAssignmentFromMeta.java


注:本文中的org.apache.hadoop.hbase.HRegionInfo.isSplit方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。