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


Java MasterCoprocessorHost.preDeleteTableHandler方法代码示例

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


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

示例1: handleTableOperation

import org.apache.hadoop.hbase.master.MasterCoprocessorHost; //导入方法依赖的package包/类
@Override
protected void handleTableOperation(List<HRegionInfo> regions)
    throws IOException, CoordinatedStateException {
  MasterCoprocessorHost cpHost = ((HMaster) this.server).getMasterCoprocessorHost();
  if (cpHost != null) {
    cpHost.preDeleteTableHandler(this.tableName);
  }

  // 1. Wait because of region in transition
  waitRegionInTransition(regions);

  try {
    // 2. Remove table from hbase:meta and HDFS
    removeTableData(regions);
  } finally {
    // 3. Update table descriptor cache
    LOG.debug("Removing '" + tableName + "' descriptor.");
    this.masterServices.getTableDescriptors().remove(tableName);

    AssignmentManager am = this.masterServices.getAssignmentManager();

    // 4. Clean up regions of the table in RegionStates.
    LOG.debug("Removing '" + tableName + "' from region states.");
    am.getRegionStates().tableDeleted(tableName);

    // 5. If entry for this table in zk, and up in AssignmentManager, remove it.
    LOG.debug("Marking '" + tableName + "' as deleted.");
    am.getTableStateManager().setDeletedTable(tableName);

    // 6.Clean any remaining rows for this table.
    cleanAnyRemainingRows();
  }

  if (cpHost != null) {
    cpHost.postDeleteTableHandler(this.tableName);
  }
}
 
开发者ID:grokcoder,项目名称:pbase,代码行数:38,代码来源:DeleteTableHandler.java

示例2: handleTableOperation

import org.apache.hadoop.hbase.master.MasterCoprocessorHost; //导入方法依赖的package包/类
@Override
protected void handleTableOperation(List<HRegionInfo> regions)
    throws IOException, CoordinatedStateException {
  MasterCoprocessorHost cpHost = ((HMaster) this.server).getMasterCoprocessorHost();
  if (cpHost != null) {
    cpHost.preDeleteTableHandler(this.tableName);
  }

  // 1. Wait because of region in transition
  waitRegionInTransition(regions);

  try {
    // 2. Remove table from .META. and HDFS
    removeTableData(regions);
  } finally {
    // 3. Update table descriptor cache
    LOG.debug("Removing '" + tableName + "' descriptor.");
    this.masterServices.getTableDescriptors().remove(tableName);

    AssignmentManager am = this.masterServices.getAssignmentManager();

    // 4. Clean up regions of the table in RegionStates.
    LOG.debug("Removing '" + tableName + "' from region states.");
    am.getRegionStates().tableDeleted(tableName);

    // 5. If entry for this table in zk, and up in AssignmentManager, remove it.
    LOG.debug("Marking '" + tableName + "' as deleted.");
    am.getTableStateManager().setDeletedTable(tableName);
  }

  if (cpHost != null) {
    cpHost.postDeleteTableHandler(this.tableName);
  }
}
 
开发者ID:shenli-uiuc,项目名称:PyroDB,代码行数:35,代码来源:DeleteTableHandler.java

示例3: handleTableOperation

import org.apache.hadoop.hbase.master.MasterCoprocessorHost; //导入方法依赖的package包/类
@Override
protected void handleTableOperation(List<HRegionInfo> regions)
throws IOException, KeeperException {
  MasterCoprocessorHost cpHost = ((HMaster) this.server)
      .getCoprocessorHost();
  if (cpHost != null) {
    cpHost.preDeleteTableHandler(this.tableName);
  }

  // 1. Wait because of region in transition
  AssignmentManager am = this.masterServices.getAssignmentManager();
  RegionStates states = am.getRegionStates();
  long waitTime = server.getConfiguration().
    getLong("hbase.master.wait.on.region", 5 * 60 * 1000);
  for (HRegionInfo region : regions) {
    long done = System.currentTimeMillis() + waitTime;
    while (System.currentTimeMillis() < done) {
      if (states.isRegionInState(region, State.FAILED_OPEN)) {
        am.regionOffline(region);
      }
      if (!states.isRegionInTransition(region)) break;
      Threads.sleep(waitingTimeForEvents);
      LOG.debug("Waiting on region to clear regions in transition; "
        + am.getRegionStates().getRegionTransitionState(region));
    }
    if (states.isRegionInTransition(region)) {
      throw new IOException("Waited hbase.master.wait.on.region (" +
        waitTime + "ms) for region to leave region " +
        region.getRegionNameAsString() + " in transitions");
    }
  }

  // 2. Remove regions from META
  LOG.debug("Deleting regions from META");
  MetaEditor.deleteRegions(this.server.getCatalogTracker(), regions);

  // 3. Move the table in /hbase/.tmp
  MasterFileSystem mfs = this.masterServices.getMasterFileSystem();
  Path tempTableDir = mfs.moveTableToTemp(tableName);

  try {
    // 4. Delete regions from FS (temp directory)
    FileSystem fs = mfs.getFileSystem();
    for (HRegionInfo hri: regions) {
      LOG.debug("Archiving region " + hri.getRegionNameAsString() + " from FS");
      HFileArchiver.archiveRegion(fs, mfs.getRootDir(),
          tempTableDir, new Path(tempTableDir, hri.getEncodedName()));
    }

    // 5. Delete table from FS (temp directory)
    if (!fs.delete(tempTableDir, true)) {
      LOG.error("Couldn't delete " + tempTableDir);
    }

    LOG.debug("Table '" + tableName + "' archived!");
  } finally {
    // 6. Update table descriptor cache
    LOG.debug("Removing '" + tableName + "' descriptor.");
    this.masterServices.getTableDescriptors().remove(tableName);

    // 7. Clean up regions of the table in RegionStates.
    LOG.debug("Removing '" + tableName + "' from region states.");
    states.tableDeleted(tableName);

    // 8. If entry for this table in zk, and up in AssignmentManager, remove it.
    LOG.debug("Marking '" + tableName + "' as deleted.");
    am.getZKTable().setDeletedTable(tableName);
  }

  if (cpHost != null) {
    cpHost.postDeleteTableHandler(this.tableName);
  }
}
 
开发者ID:tenggyut,项目名称:HIndex,代码行数:74,代码来源:DeleteTableHandler.java

示例4: handleTableOperation

import org.apache.hadoop.hbase.master.MasterCoprocessorHost; //导入方法依赖的package包/类
@Override
protected void handleTableOperation(List<HRegionInfo> regions)
throws IOException, KeeperException {
  MasterCoprocessorHost cpHost = ((HMaster) this.server)
      .getCoprocessorHost();
  if (cpHost != null) {
    cpHost.preDeleteTableHandler(this.tableName);
  }

  // 1. Wait because of region in transition
  AssignmentManager am = this.masterServices.getAssignmentManager();
  RegionStates states = am.getRegionStates();
  long waitTime = server.getConfiguration().
    getLong("hbase.master.wait.on.region", 5 * 60 * 1000);
  for (HRegionInfo region : regions) {
    long done = System.currentTimeMillis() + waitTime;
    while (System.currentTimeMillis() < done) {
      if (states.isRegionInState(region, State.FAILED_OPEN)) {
        am.regionOffline(region);
      }
      if (!states.isRegionInTransition(region)) break;
      Threads.sleep(waitingTimeForEvents);
      LOG.debug("Waiting on region to clear regions in transition; "
        + am.getRegionStates().getRegionTransitionState(region));
    }
    if (states.isRegionInTransition(region)) {
      throw new IOException("Waited hbase.master.wait.on.region (" +
        waitTime + "ms) for region to leave region " +
        region.getRegionNameAsString() + " in transitions");
    }
  }

  // 2. Remove regions from META
  LOG.debug("Deleting regions from META");
  MetaEditor.deleteRegions(this.server.getCatalogTracker(), regions);

  // 3. Move the table in /hbase/.tmp
  MasterFileSystem mfs = this.masterServices.getMasterFileSystem();
  Path tempTableDir = mfs.moveTableToTemp(tableName);

  try {
    // 4. Delete regions from FS (temp directory)
    FileSystem fs = mfs.getFileSystem();
    for (HRegionInfo hri: regions) {
      LOG.debug("Archiving region " + hri.getRegionNameAsString() + " from FS");
      HFileArchiver.archiveRegion(fs, mfs.getRootDir(),
          tempTableDir, new Path(tempTableDir, hri.getEncodedName()));
    }

    // 5. Delete table from FS (temp directory)
    if (!fs.delete(tempTableDir, true)) {
      LOG.error("Couldn't delete " + tempTableDir);
    }

    LOG.debug("Table '" + tableName + "' archived!");
  } finally {
    // 6. Update table descriptor cache
    LOG.debug("Removing '" + tableName + "' descriptor.");
    this.masterServices.getTableDescriptors().remove(tableName);

    // 7. If entry for this table in zk, and up in AssignmentManager, remove it.
    LOG.debug("Marking '" + tableName + "' as deleted.");
    am.getZKTable().setDeletedTable(tableName);
  }

  if (cpHost != null) {
    cpHost.postDeleteTableHandler(this.tableName);
  }
}
 
开发者ID:cloud-software-foundation,项目名称:c5,代码行数:70,代码来源:DeleteTableHandler.java

示例5: handleTableOperation

import org.apache.hadoop.hbase.master.MasterCoprocessorHost; //导入方法依赖的package包/类
@Override
protected void handleTableOperation(List<HRegionInfo> regions)
throws IOException, KeeperException {
  MasterCoprocessorHost cpHost = ((HMaster) this.server)
      .getCoprocessorHost();
  if (cpHost != null) {
    cpHost.preDeleteTableHandler(this.tableName);
  }
  AssignmentManager am = this.masterServices.getAssignmentManager();
  long waitTime = server.getConfiguration().
    getLong("hbase.master.wait.on.region", 5 * 60 * 1000);
  for (HRegionInfo region : regions) {
    long done = System.currentTimeMillis() + waitTime;
    while (System.currentTimeMillis() < done) {
      if (!am.getRegionStates().isRegionInTransition(region)) break;
      Threads.sleep(waitingTimeForEvents);
      LOG.debug("Waiting on region to clear regions in transition; "
        + am.getRegionStates().getRegionTransitionState(region));
    }
    if (am.getRegionStates().isRegionInTransition(region)) {
      throw new IOException("Waited hbase.master.wait.on.region (" +
        waitTime + "ms) for region to leave region " +
        region.getRegionNameAsString() + " in transitions");
    }
    LOG.debug("Deleting region " + region.getRegionNameAsString() +
      " from META and FS");
    // Remove region from META
    MetaEditor.deleteRegion(this.server.getCatalogTracker(), region);
    // Delete region from FS
    this.masterServices.getMasterFileSystem().deleteRegion(region);
  }
  // Delete table from FS
  this.masterServices.getMasterFileSystem().deleteTable(tableName);
  // Update table descriptor cache
  this.masterServices.getTableDescriptors().remove(Bytes.toString(tableName));

  // If entry for this table in zk, and up in AssignmentManager, remove it.

  am.getZKTable().setDeletedTable(Bytes.toString(tableName));
  if (cpHost != null) {
    cpHost.postDeleteTableHandler(this.tableName);
  }
}
 
开发者ID:daidong,项目名称:DominoHBase,代码行数:44,代码来源:DeleteTableHandler.java

示例6: handleTableOperation

import org.apache.hadoop.hbase.master.MasterCoprocessorHost; //导入方法依赖的package包/类
@Override
protected void handleTableOperation(List<HRegionInfo> regions)
throws IOException, KeeperException {
  MasterCoprocessorHost cpHost = ((HMaster) this.server).getCoprocessorHost();
  if (cpHost != null) {
    cpHost.preDeleteTableHandler(this.tableName);
  }
  // 1. Wait because of region in transition
  AssignmentManager am = this.masterServices.getAssignmentManager();
  long waitTime = server.getConfiguration().
    getLong("hbase.master.wait.on.region", 5 * 60 * 1000);
  for (HRegionInfo region : regions) {
    long done = System.currentTimeMillis() + waitTime;
    while (System.currentTimeMillis() < done) {
      AssignmentManager.RegionState rs = am.isRegionInTransition(region);
      if (rs == null) break;
      Threads.sleep(waitingTimeForEvents);
      LOG.debug("Waiting on  region to clear regions in transition; " + rs);
    }
    if (am.isRegionInTransition(region) != null) {
      throw new IOException("Waited hbase.master.wait.on.region (" +
        waitTime + "ms) for region to leave region " +
        region.getRegionNameAsString() + " in transitions");
    }
  }

  // 2. Remove regions from META
  LOG.debug("Deleting regions from META");
  MetaEditor.deleteRegions(this.server.getCatalogTracker(), regions);

  // 3. Move the table in /hbase/.tmp
  LOG.debug("Moving table directory to a temp directory");
  MasterFileSystem mfs = this.masterServices.getMasterFileSystem();
  Path tempTableDir = mfs.moveTableToTemp(tableName);

  try {
    // 4. Delete regions from FS (temp directory)
    FileSystem fs = mfs.getFileSystem();
    for (HRegionInfo hri: regions) {
      LOG.debug("Archiving region " + hri.getRegionNameAsString() + " from FS");
      HFileArchiver.archiveRegion(fs, mfs.getRootDir(),
          tempTableDir, new Path(tempTableDir, hri.getEncodedName()));
    }

    // 5. Delete table from FS (temp directory)
    if (!HBaseFileSystem.deleteDirFromFileSystem(fs, tempTableDir)) {
      LOG.error("Couldn't delete " + tempTableDir);
    }
  } finally {
    // 6. Update table descriptor cache
    this.masterServices.getTableDescriptors().remove(Bytes.toString(tableName));

    // 7. If entry for this table in zk, and up in AssignmentManager, remove it.
    am.getZKTable().setDeletedTable(Bytes.toString(tableName));
    if (cpHost != null) {
      cpHost.postDeleteTableHandler(this.tableName);
    }
  }
}
 
开发者ID:Huawei-Hadoop,项目名称:hindex,代码行数:60,代码来源:DeleteTableHandler.java


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