diff --git a/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java b/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java index ac2b99c..a4b04c2 100644 --- a/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java +++ b/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java @@ -75,16 +75,6 @@ import java.util.concurrent.CopyOnWriteArraySet; */ @SuppressWarnings("serial") public class HConnectionManager { - // Register a shutdown hook, one that cleans up RPC and closes zk sessions. - static { - Runtime.getRuntime().addShutdownHook(new Thread("HCM.shutdownHook") { - @Override - public void run() { - HConnectionManager.deleteAllConnections(true); - } - }); - } - /* * Not instantiable. */ diff --git a/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java b/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java index b6865de..795f27b 100644 --- a/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java +++ b/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java @@ -235,5 +235,4 @@ extends InputFormat { protected void setTableRecordReader(TableRecordReader tableRecordReader) { this.tableRecordReader = tableRecordReader; } - } diff --git a/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java b/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java index 47453e0..aaf6bf0 100644 --- a/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java +++ b/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java @@ -26,6 +26,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.client.Delete; +import org.apache.hadoop.hbase.client.HConnectionManager; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.io.Writable; @@ -88,6 +89,12 @@ public class TableOutputFormat extends OutputFormat { public void close(TaskAttemptContext context) throws IOException { table.flushCommits(); + // The following call will shutdown all connections to the cluster from + // this JVM. It will close out our zk session otherwise zk wil log + // expired sessions rather than closed ones. If any other HTable instance + // running in this JVM, this next call will cause it damage. Presumption + // is that the above this.table is only instance. + HConnectionManager.deleteAllConnections(true); } /** diff --git a/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 1236a17..e4bd30d 100644 --- a/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -66,13 +66,12 @@ import org.apache.hadoop.hbase.RemoteExceptionHandler; import org.apache.hadoop.hbase.TableExistsException; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.MetaScanner; -import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor; +import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.ServerConnection; import org.apache.hadoop.hbase.client.ServerConnectionManager; -import org.apache.hadoop.hbase.executor.HBaseEventHandler; +import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor; import org.apache.hadoop.hbase.executor.HBaseExecutorService; import org.apache.hadoop.hbase.executor.HBaseEventHandler.HBaseEventType; import org.apache.hadoop.hbase.io.ImmutableBytesWritable;