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


Java RegionLocations.getRegionLocations方法代码示例

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


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

示例1: printLocations

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
private void printLocations(Result r) {
  RegionLocations rl = null;
  if (r == null) {
    LOG.info("FAILED FOR null Result");
    return;
  }
  LOG.info("FAILED FOR " + resultToString(r) + " Stale " + r.isStale());
  if (r.getRow() == null) {
    return;
  }
  try {
    rl = ((ClusterConnection)connection).locateRegion(tableName, r.getRow(), true, true);
  } catch (IOException e) {
    LOG.warn("Couldn't get locations for row " + Bytes.toString(r.getRow()));
  }
  HRegionLocation locations[] = rl.getRegionLocations();
  for (HRegionLocation h : locations) {
    LOG.info("LOCATION " + h);
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:21,代码来源:MultiThreadedAction.java

示例2: allTableRegions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
/**
 * Lists all of the table regions currently in META.
 * @param connection
 * @param tableName
 * @return Map of all user-space regions to servers
 * @throws IOException
 */
public static NavigableMap<HRegionInfo, ServerName> allTableRegions(
    Connection connection, final TableName tableName) throws IOException {
  final NavigableMap<HRegionInfo, ServerName> regions =
    new TreeMap<HRegionInfo, ServerName>();
  MetaScannerVisitor visitor = new TableMetaScannerVisitor(tableName) {
    @Override
    public boolean processRowInternal(Result result) throws IOException {
      RegionLocations locations = MetaTableAccessor.getRegionLocations(result);
      if (locations == null) return true;
      for (HRegionLocation loc : locations.getRegionLocations()) {
        if (loc != null) {
          HRegionInfo regionInfo = loc.getRegionInfo();
          regions.put(new UnmodifyableHRegionInfo(regionInfo), loc.getServerName());
        }
      }
      return true;
    }
  };
  metaScan(connection, visitor, tableName);
  return regions;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:29,代码来源:MetaScanner.java

示例3: locateRegions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
@Override
public List<HRegionLocation> locateRegions(final TableName tableName,
    final boolean useCache, final boolean offlined) throws IOException {
  NavigableMap<HRegionInfo, ServerName> regions = MetaScanner.allTableRegions(this, tableName);
  final List<HRegionLocation> locations = new ArrayList<HRegionLocation>();
  for (HRegionInfo regionInfo : regions.keySet()) {
    RegionLocations list = locateRegion(tableName, regionInfo.getStartKey(), useCache, true);
    if (list != null) {
      for (HRegionLocation loc : list.getRegionLocations()) {
        if (loc != null) {
          locations.add(loc);
        }
      }
    }
  }
  return locations;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:18,代码来源:ConnectionManager.java

示例4: locateRegions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
@Override
public List<HRegionLocation> locateRegions(final TableName tableName,
                                           final boolean useCache, final boolean offlined) throws IOException {
    NavigableMap<HRegionInfo, ServerName> regions = MetaScanner.allTableRegions(this, tableName);
    final List<HRegionLocation> locations = new ArrayList<HRegionLocation>();
    for (HRegionInfo regionInfo : regions.keySet()) {
        RegionLocations list = locateRegion(tableName, regionInfo.getStartKey(), useCache, true);
        if (list != null) {
            for (HRegionLocation loc : list.getRegionLocations()) {
                if (loc != null) {
                    locations.add(loc);
                }
            }
        }
    }
    return locations;
}
 
开发者ID:grokcoder,项目名称:pbase,代码行数:18,代码来源:ConnectionManager.java

示例5: checkMetaLocationAndExplain

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
@Nullable
private String checkMetaLocationAndExplain(int originalReplicaCount)
    throws KeeperException, IOException {
  List<String> metaZnodes = TEST_UTIL.getZooKeeperWatcher().getMetaReplicaNodes();
  if (metaZnodes.size() == originalReplicaCount) {
    RegionLocations rl = ((ClusterConnection) TEST_UTIL.getConnection())
        .locateRegion(TableName.META_TABLE_NAME,
            HConstants.EMPTY_START_ROW, false, false);
    for (HRegionLocation location : rl.getRegionLocations()) {
      if (location == null) {
        return "Null location found in " + rl.toString();
      }
      if (location.getRegionInfo() == null) {
        return "Null regionInfo for location " + location;
      }
      if (location.getHostname() == null) {
        return "Null hostName for location " + location;
      }
    }
    return null; // OK
  }
  return "Replica count is not as expected " + originalReplicaCount + " <> " + metaZnodes.size()
      + "(" + metaZnodes.toString() + ")";
}
 
开发者ID:apache,项目名称:hbase,代码行数:25,代码来源:TestMetaWithReplicas.java

示例6: locateRegions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
@Override
public List<HRegionLocation> locateRegions(TableName tableName, boolean useCache,
    boolean offlined) throws IOException {
  List<RegionInfo> regions;
  if (TableName.isMetaTableName(tableName)) {
    regions = Collections.singletonList(RegionInfoBuilder.FIRST_META_REGIONINFO);
  } else {
    regions = MetaTableAccessor.getTableRegions(this, tableName, !offlined);
  }
  List<HRegionLocation> locations = new ArrayList<>();
  for (RegionInfo regionInfo : regions) {
    RegionLocations list = locateRegion(tableName, regionInfo.getStartKey(), useCache, true);
    if (list != null) {
      for (HRegionLocation loc : list.getRegionLocations()) {
        if (loc != null) {
          locations.add(loc);
        }
      }
    }
  }
  return locations;
}
 
开发者ID:apache,项目名称:hbase,代码行数:23,代码来源:ConnectionImplementation.java

示例7: recordMetaRegion

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
/**
 * Record the location of the hbase:meta region as found in ZooKeeper.
 */
private boolean recordMetaRegion() throws IOException {
  RegionLocations rl = ((ClusterConnection)connection).locateRegion(TableName.META_TABLE_NAME,
      HConstants.EMPTY_START_ROW, false, false);
  if (rl == null) {
    errors.reportError(ERROR_CODE.NULL_META_REGION,
        "META region or some of its attributes are null.");
    return false;
  }
  for (HRegionLocation metaLocation : rl.getRegionLocations()) {
    // Check if Meta region is valid and existing
    if (metaLocation == null || metaLocation.getRegionInfo() == null ||
        metaLocation.getHostname() == null) {
      errors.reportError(ERROR_CODE.NULL_META_REGION,
          "META region or some of its attributes are null.");
      return false;
    }
    ServerName sn = metaLocation.getServerName();
    MetaEntry m = new MetaEntry(metaLocation.getRegionInfo(), sn, EnvironmentEdgeManager.currentTime());
    HbckInfo hbckInfo = regionInfoMap.get(metaLocation.getRegionInfo().getEncodedName());
    if (hbckInfo == null) {
      regionInfoMap.put(metaLocation.getRegionInfo().getEncodedName(), new HbckInfo(m));
    } else {
      hbckInfo.metaEntry = m;
    }
  }
  return true;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:31,代码来源:HBaseFsck.java

示例8: countMetaRegions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
private static int countMetaRegions(final HMaster master, final TableName tableName)
    throws IOException {
  final AtomicInteger actualRegCount = new AtomicInteger(0);
  final MetaScannerVisitor visitor = new MetaScannerVisitorBase() {
    @Override
    public boolean processRow(Result rowResult) throws IOException {
      RegionLocations list = MetaTableAccessor.getRegionLocations(rowResult);
      if (list == null) {
        LOG.warn("No serialized HRegionInfo in " + rowResult);
        return true;
      }
      HRegionLocation l = list.getRegionLocation();
      if (l == null) {
        return true;
      }
      if (!l.getRegionInfo().getTable().equals(tableName)) {
        return false;
      }
      if (l.getRegionInfo().isOffline() || l.getRegionInfo().isSplit()) return true;
      HRegionLocation[] locations = list.getRegionLocations();
      for (HRegionLocation location : locations) {
        if (location == null) continue;
        ServerName serverName = location.getServerName();
        // Make sure that regions are assigned to server
        if (serverName != null && serverName.getHostAndPort() != null) {
          actualRegCount.incrementAndGet();
        }
      }
      return true;
    }
  };
  MetaScanner.metaScan(master.getConnection(), visitor, tableName);
  return actualRegCount.get();
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:35,代码来源:MasterProcedureTestingUtility.java

示例9: getRegion

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
/**
 * @param regionName Name of a region.
 * @return a pair of HRegionInfo and ServerName if <code>regionName</code> is
 *  a verified region name (we call {@link
 *  MetaTableAccessor#getRegion(HConnection, byte[])}
 *  else null.
 * Throw IllegalArgumentException if <code>regionName</code> is null.
 * @throws IOException
 */
Pair<HRegionInfo, ServerName> getRegion(final byte[] regionName) throws IOException {
  if (regionName == null) {
    throw new IllegalArgumentException("Pass a table name or region name");
  }
  Pair<HRegionInfo, ServerName> pair =
    MetaTableAccessor.getRegion(connection, regionName);
  if (pair == null) {
    final AtomicReference<Pair<HRegionInfo, ServerName>> result =
      new AtomicReference<Pair<HRegionInfo, ServerName>>(null);
    final String encodedName = Bytes.toString(regionName);
    MetaScannerVisitor visitor = new MetaScannerVisitorBase() {
      @Override
      public boolean processRow(Result data) throws IOException {
        HRegionInfo info = HRegionInfo.getHRegionInfo(data);
        if (info == null) {
          LOG.warn("No serialized HRegionInfo in " + data);
          return true;
        }
        RegionLocations rl = MetaTableAccessor.getRegionLocations(data);
        boolean matched = false;
        ServerName sn = null;
        for (HRegionLocation h : rl.getRegionLocations()) {
          if (h != null && encodedName.equals(h.getRegionInfo().getEncodedName())) {
            sn = h.getServerName();
            info = h.getRegionInfo();
            matched = true;
          }
        }
        if (!matched) return true;
        result.set(new Pair<HRegionInfo, ServerName>(info, sn));
        return false; // found the region, stop
      }
    };

    MetaScanner.metaScan(connection, visitor, null);
    pair = result.get();
  }
  return pair;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:49,代码来源:HBaseAdmin.java

示例10: listAllRegions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
/**
 * Lists all of the regions currently in META.
 * @param conf configuration
 * @param connection to connect with
 * @param offlined True if we are to include offlined regions, false and we'll
 * leave out offlined regions from returned list.
 * @return List of all user-space regions.
 * @throws IOException
 */
@VisibleForTesting // And for hbck.
public static List<HRegionInfo> listAllRegions(Configuration conf, Connection connection,
    final boolean offlined)
throws IOException {
  final List<HRegionInfo> regions = new ArrayList<HRegionInfo>();
  MetaScannerVisitor visitor = new MetaScannerVisitorBase() {
      @Override
      public boolean processRow(Result result) throws IOException {
        if (result == null || result.isEmpty()) {
          return true;
        }

        RegionLocations locations = MetaTableAccessor.getRegionLocations(result);
        if (locations == null) return true;
        for (HRegionLocation loc : locations.getRegionLocations()) {
          if (loc != null) {
            HRegionInfo regionInfo = loc.getRegionInfo();
            // If region offline AND we are not to include offlined regions, return.
            if (regionInfo.isOffline() && !offlined) continue;
            regions.add(regionInfo);
          }
        }
        return true;
      }
  };
  metaScan(connection, visitor);
  return regions;
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:38,代码来源:MetaScanner.java

示例11: addToCachedServers

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
private void addToCachedServers(RegionLocations locations) {
  for (HRegionLocation loc : locations.getRegionLocations()) {
    if (loc != null) {
      cachedServers.add(loc.getServerName());
    }
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:8,代码来源:MetaCache.java

示例12: addReplicaActions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
/**
 * Add replica actions to action map by server.
 * @param index Index of the original action.
 * @param actionsByServer The map by server to add it to.
 */
private void addReplicaActions(int index, Map<ServerName, MultiAction<Row>> actionsByServer,
    List<Action<Row>> unknownReplicaActions) {
  if (results[index] != null) return; // opportunistic. Never goes from non-null to null.
  Action<Row> action = initialActions.get(index);
  RegionLocations loc = findAllLocationsOrFail(action, true);
  if (loc == null) return;
  HRegionLocation[] locs = loc.getRegionLocations();
  if (locs.length == 1) {
    LOG.warn("No replicas found for " + action.getAction());
    return;
  }
  synchronized (replicaResultLock) {
    // Don't run replica calls if the original has finished. We could do it e.g. if
    // original has already failed before first replica call (unlikely given retries),
    // but that would require additional synchronization w.r.t. returning to caller.
    if (results[index] != null) return;
    // We set the number of calls here. After that any path must call setResult/setError.
    // True even for replicas that are not found - if we refuse to send we MUST set error.
    results[index] = new ReplicaResultState(locs.length);
  }
  for (int i = 1; i < locs.length; ++i) {
    Action<Row> replicaAction = new Action<Row>(action, i);
    if (locs[i] != null) {
      addAction(locs[i].getServerName(), locs[i].getRegionInfo().getRegionName(),
          replicaAction, actionsByServer, nonceGroup);
    } else {
      unknownReplicaActions.add(replicaAction);
    }
  }
}
 
开发者ID:fengchen8086,项目名称:ditb,代码行数:36,代码来源:AsyncProcess.java

示例13: visitMetaEntry

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
private void visitMetaEntry(final RegionStateVisitor visitor, final Result result)
    throws IOException {
  final RegionLocations rl = MetaTableAccessor.getRegionLocations(result);
  if (rl == null) return;

  final HRegionLocation[] locations = rl.getRegionLocations();
  if (locations == null) return;

  for (int i = 0; i < locations.length; ++i) {
    final HRegionLocation hrl = locations[i];
    if (hrl == null) continue;

    final RegionInfo regionInfo = hrl.getRegionInfo();
    if (regionInfo == null) continue;

    final int replicaId = regionInfo.getReplicaId();
    final State state = getRegionState(result, replicaId);

    final ServerName lastHost = hrl.getServerName();
    final ServerName regionLocation = getRegionServer(result, replicaId);
    final long openSeqNum = -1;

    // TODO: move under trace, now is visible for debugging
    LOG.info(String.format("Load hbase:meta entry region=%s regionState=%s lastHost=%s regionLocation=%s",
      regionInfo, state, lastHost, regionLocation));

    visitor.visitRegionState(regionInfo, state, regionLocation, lastHost, openSeqNum);
  }
}
 
开发者ID:apache,项目名称:hbase,代码行数:30,代码来源:RegionStateStore.java

示例14: recordMetaRegion

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
/**
 * Record the location of the hbase:meta region as found in ZooKeeper.
 */
private boolean recordMetaRegion() throws IOException {
  RegionLocations rl = connection.locateRegion(TableName.META_TABLE_NAME,
      HConstants.EMPTY_START_ROW, false, false);
  if (rl == null) {
    errors.reportError(ERROR_CODE.NULL_META_REGION,
        "META region was not found in ZooKeeper");
    return false;
  }
  for (HRegionLocation metaLocation : rl.getRegionLocations()) {
    // Check if Meta region is valid and existing
    if (metaLocation == null ) {
      errors.reportError(ERROR_CODE.NULL_META_REGION,
          "META region location is null");
      return false;
    }
    if (metaLocation.getRegionInfo() == null) {
      errors.reportError(ERROR_CODE.NULL_META_REGION,
          "META location regionInfo is null");
      return false;
    }
    if (metaLocation.getHostname() == null) {
      errors.reportError(ERROR_CODE.NULL_META_REGION,
          "META location hostName is null");
      return false;
    }
    ServerName sn = metaLocation.getServerName();
    MetaEntry m = new MetaEntry(metaLocation.getRegionInfo(), sn, EnvironmentEdgeManager.currentTime());
    HbckInfo hbckInfo = regionInfoMap.get(metaLocation.getRegionInfo().getEncodedName());
    if (hbckInfo == null) {
      regionInfoMap.put(metaLocation.getRegionInfo().getEncodedName(), new HbckInfo(m));
    } else {
      hbckInfo.metaEntry = m;
    }
  }
  return true;
}
 
开发者ID:apache,项目名称:hbase,代码行数:40,代码来源:HBaseFsck.java

示例15: countMetaRegions

import org.apache.hadoop.hbase.RegionLocations; //导入方法依赖的package包/类
private static int countMetaRegions(final HMaster master, final TableName tableName)
    throws IOException {
  final AtomicInteger actualRegCount = new AtomicInteger(0);
  final MetaTableAccessor.Visitor visitor = new MetaTableAccessor.Visitor() {
    @Override
    public boolean visit(Result rowResult) throws IOException {
      RegionLocations list = MetaTableAccessor.getRegionLocations(rowResult);
      if (list == null) {
        LOG.warn("No serialized RegionInfo in " + rowResult);
        return true;
      }
      HRegionLocation l = list.getRegionLocation();
      if (l == null) {
        return true;
      }
      if (!l.getRegionInfo().getTable().equals(tableName)) {
        return false;
      }
      if (l.getRegionInfo().isOffline() || l.getRegionInfo().isSplit()) return true;
      HRegionLocation[] locations = list.getRegionLocations();
      for (HRegionLocation location : locations) {
        if (location == null) continue;
        ServerName serverName = location.getServerName();
        // Make sure that regions are assigned to server
        if (serverName != null && serverName.getHostAndPort() != null) {
          actualRegCount.incrementAndGet();
        }
      }
      return true;
    }
  };
  MetaTableAccessor.scanMetaForTableRegions(master.getConnection(), visitor, tableName);
  return actualRegCount.get();
}
 
开发者ID:apache,项目名称:hbase,代码行数:35,代码来源:MasterProcedureTestingUtility.java


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