You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2015/03/20 22:27:41 UTC
[4/4] hbase git commit: HBASE-13282 Fix the minor issues of running
Canary on kerberized environment (Srikanth Srungarapu)
HBASE-13282 Fix the minor issues of running Canary on kerberized environment (Srikanth Srungarapu)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/09151911
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/09151911
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/09151911
Branch: refs/heads/master
Commit: 09151911679a608db31cca63c25cfd52818a311c
Parents: f4eb719
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Fri Mar 20 21:26:53 2015 +0000
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Fri Mar 20 21:26:53 2015 +0000
----------------------------------------------------------------------
.../java/org/apache/hadoop/hbase/AuthUtil.java | 6 +++---
.../org/apache/hadoop/hbase/tool/Canary.java | 19 +++++++++++++------
2 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/09151911/hbase-common/src/main/java/org/apache/hadoop/hbase/AuthUtil.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/AuthUtil.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/AuthUtil.java
index f597935..4754ea4 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/AuthUtil.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/AuthUtil.java
@@ -59,10 +59,10 @@ public class AuthUtil {
conf.get("hbase.client.dns.nameserver", "default")));
userProvider.login("hbase.client.keytab.file", "hbase.client.kerberos.principal", host);
} catch (UnknownHostException e) {
- LOG.error("Error resolving host name");
+ LOG.error("Error resolving host name: " + e.getMessage(), e);
throw e;
} catch (IOException e) {
- LOG.error("Error while trying to perform the initial login");
+ LOG.error("Error while trying to perform the initial login: " + e.getMessage(), e);
throw e;
}
@@ -93,7 +93,7 @@ public class AuthUtil {
try {
ugi.checkTGTAndReloginFromKeytab();
} catch (IOException e) {
- LOG.info("Got exception while trying to refresh credentials ");
+ LOG.error("Got exception while trying to refresh credentials: " + e.getMessage(), e);
}
}
};
http://git-wip-us.apache.org/repos/asf/hbase/blob/09151911/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
index c8f0a72..e5ad106 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
@@ -338,6 +338,7 @@ public final class Canary implements Tool {
@Override
public int run(String[] args) throws Exception {
int index = -1;
+ ChoreService choreService = null;
// Process command line args
for (int i = 0; i < args.length; i++) {
@@ -411,6 +412,15 @@ public final class Canary implements Tool {
}
}
+ // Launches chore for refreshing kerberos credentials if security is enabled.
+ // Please see http://hbase.apache.org/book.html#_running_canary_in_a_kerberos_enabled_cluster
+ // for more details.
+ final ScheduledChore authChore = AuthUtil.getAuthChore(conf);
+ if (authChore != null) {
+ choreService = new ChoreService("CANARY_TOOL");
+ choreService.scheduleChore(authChore);
+ }
+
// Start to prepare the stuffs
Monitor monitor = null;
Thread monitorThread = null;
@@ -465,6 +475,9 @@ public final class Canary implements Tool {
} while (interval > 0);
} // try-with-resources close
+ if (choreService != null) {
+ choreService.shutdown();
+ }
return(monitor.errorCode);
}
@@ -875,11 +888,6 @@ public final class Canary implements Tool {
public static void main(String[] args) throws Exception {
final Configuration conf = HBaseConfiguration.create();
- final ChoreService choreService = new ChoreService("CANARY_TOOL");
- final ScheduledChore authChore = AuthUtil.getAuthChore(conf);
- if (authChore != null) {
- choreService.scheduleChore(authChore);
- }
int numThreads = conf.getInt("hbase.canary.threads.num", MAX_THREADS_NUM);
ExecutorService executor = new ScheduledThreadPoolExecutor(numThreads);
@@ -888,7 +896,6 @@ public final class Canary implements Tool {
Sink sink = ReflectionUtils.newInstance(sinkClass);
int exitCode = ToolRunner.run(conf, new Canary(executor, sink), args);
- choreService.shutdown();
executor.shutdown();
System.exit(exitCode);
}