HBase 清空表数据
public int clearTableByTableName(String tableName) throws Exception { logger.debug("======InitHbaseServiceImpl clearTableByTableName======="); int count = 0; List<HBaseRow> rowsList = hbaseUtil.getRowsByStartAndEnd(tableName, null, null, HBaseConsts.FILTER_RECORD_COUNT); count += deleteData(tableName, rowsList, 0); //解决返回查找第一条为前一页最后一条数据 while (rowsList.size() == HBaseConsts.FILTER_RECORD_COUNT) { String startKey = rowsList.get(rowsList.size() - 1).getRowKey(); rowsList.clear(); try { rowsList = hbaseUtil.getRowsByStartAndEnd(tableName, startKey, null, HBaseConsts.FILTER_RECORD_COUNT); } catch (Exception e) { logger.error("==========获取" + tableName + "数据异常=========="); } count += deleteData(tableName, rowsList, 1); if (rowsList.size() < HBaseConsts.FILTER_RECORD_COUNT) { break; } } return count; } /** * 删除数据 * * @param tableName * @param rowsList * @param startIdx * @throws Exception */ private int deleteData(String tableName, List<HBaseRow> rowsList, int startIdx) throws Exception { logger.debug("=======deleteData rowsList:{}========", rowsList.size()); int successCount = 0; for (int i = startIdx; i < rowsList.size(); i++) { HBaseRow baseRow = rowsList.get(i); String rowKey = baseRow.getRowKey(); try { hbaseUtil.deleteRow(tableName, rowKey); successCount++; } catch (Exception e) { logger.error("=====清数据出现异常bug====="); throw new InvokeException(ResultEnum.FAILED.getCode(), "清数据出现异常bug"); } } logger.debug("==========deleteData========本次删除成功数据:{}", successCount); return successCount; }