From 0596c9fc3edcd4fbf9dae5a0bedf31e99cabc930 Mon Sep 17 00:00:00 2001 From: kevalbhatt <kbhatt@apache.org> Date: Fri, 9 Sep 2016 22:15:05 +0530 Subject: [PATCH] ATLAS-1160 Update Atlas hive hook to read configuration from atlas-application.properties instead of hive-site.xml (mneethiraj via kevalbhatt) --- addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java | 51 +++++++++++++++++++++++++++------------------------ release-log.txt | 1 + 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java index 14359c5..fdd0199 100755 --- a/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java +++ b/addons/hive-bridge/src/main/java/org/apache/atlas/hive/hook/HiveHook.java @@ -97,7 +97,7 @@ public class HiveHook extends AtlasHook implements ExecuteWithHookContext { // wait time determines how long we wait before we exit the jvm on // shutdown. Pending requests after that will not be sent. private static final int WAIT_TIME = 3; - private static ExecutorService executor; + private static ExecutorService executor = null; private static final int minThreadsDefault = 1; private static final int maxThreadsDefault = 5; @@ -110,28 +110,32 @@ public class HiveHook extends AtlasHook implements ExecuteWithHookContext { try { // initialize the async facility to process hook calls. We don't // want to do this inline since it adds plenty of overhead for the query. - int minThreads = atlasProperties.getInt(MIN_THREADS, minThreadsDefault); - int maxThreads = atlasProperties.getInt(MAX_THREADS, maxThreadsDefault); - long keepAliveTime = atlasProperties.getLong(KEEP_ALIVE_TIME, keepAliveTimeDefault); - int queueSize = atlasProperties.getInt(QUEUE_SIZE, queueSizeDefault); - - executor = new ThreadPoolExecutor(minThreads, maxThreads, keepAliveTime, TimeUnit.MILLISECONDS, - new LinkedBlockingQueue<Runnable>(queueSize), - new ThreadFactoryBuilder().setNameFormat("Atlas Logger %d").build()); - - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - try { - executor.shutdown(); - executor.awaitTermination(WAIT_TIME, TimeUnit.SECONDS); - executor = null; - } catch (InterruptedException ie) { - LOG.info("Interrupt received in shutdown."); + boolean isSync = atlasProperties.getBoolean(CONF_SYNC, Boolean.FALSE); + + if(!isSync) { + int minThreads = atlasProperties.getInt(MIN_THREADS, minThreadsDefault); + int maxThreads = atlasProperties.getInt(MAX_THREADS, maxThreadsDefault); + long keepAliveTime = atlasProperties.getLong(KEEP_ALIVE_TIME, keepAliveTimeDefault); + int queueSize = atlasProperties.getInt(QUEUE_SIZE, queueSizeDefault); + + executor = new ThreadPoolExecutor(minThreads, maxThreads, keepAliveTime, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue<Runnable>(queueSize), + new ThreadFactoryBuilder().setNameFormat("Atlas Logger %d").build()); + + Runtime.getRuntime().addShutdownHook(new Thread() { + @Override + public void run() { + try { + executor.shutdown(); + executor.awaitTermination(WAIT_TIME, TimeUnit.SECONDS); + executor = null; + } catch (InterruptedException ie) { + LOG.info("Interrupt received in shutdown."); + } + // shutdown client } - // shutdown client - } - }); + }); + } setupOperationMap(); } catch (Exception e) { @@ -174,8 +178,7 @@ public class HiveHook extends AtlasHook implements ExecuteWithHookContext { event.setQueryStartTime(hookContext.getQueryPlan().getQueryStartTime()); event.setQueryType(hookContext.getQueryPlan().getQueryPlan().getQueryType()); - boolean sync = conf.get(CONF_SYNC, "false").equals("true"); - if (sync) { + if (executor == null) { fireAndForget(event); } else { executor.submit(new Runnable() { diff --git a/release-log.txt b/release-log.txt index 10765f9..8bbed03 100644 --- a/release-log.txt +++ b/release-log.txt @@ -10,6 +10,7 @@ ATLAS-1060 Add composite indexes for exact match performance improvements for al ATLAS-1127 Modify creation and modification timestamps to Date instead of Long(sumasai) ALL CHANGES: +ATLAS-1160 Update Atlas hive hook to read configuration from atlas-application.properties instead of hive-site.xml (mneethiraj via kevalbhatt) ATLAS-1154 Errors in Eclipse with web.xml (davidrad via dkantor) ATLAS-1147 UI: column name doesn't show up in schema tab for hive table (Kalyanikashikar via kevalbhatt) ATLAS-772 Ordering of columns is not maintained in schema query response, where as hive table entity response maintains the ordering (sarath.kum4r@gmail.com via kevalbhatt) -- libgit2 0.27.1