@Test
  public void testExecProcedure() throws Exception {
    String snapshotString = "offlineTableSnapshot";
    try {
      Table table = TEST_UTIL.createTable(tableName, Bytes.toBytes("cf"));
      for (int i = 0; i < 100; i++) {
        Put put = new Put(Bytes.toBytes(i)).addColumn(Bytes.toBytes("cf"), null, Bytes.toBytes(i));
        table.put(put);
      }
      // take a snapshot of the enabled table
      Map<String, String> props = new HashMap<>();
      props.put("table", tableName.getNameAsString());
      admin.execProcedure(SnapshotManager.ONLINE_SNAPSHOT_CONTROLLER_DESCRIPTION, snapshotString,
        props).get();
      LOG.debug("Snapshot completed.");
    } finally {
      admin.deleteSnapshot(snapshotString).join();
      TEST_UTIL.deleteTable(tableName);
    }
  }
Class to test asynchronous procedure admin operations.
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncProcedureAdminApi.java