diff --git llap-client/src/java/org/apache/hadoop/hive/llap/io/api/LlapIoProxy.java llap-client/src/java/org/apache/hadoop/hive/llap/io/api/LlapIoProxy.java index 5d3daf0..9bfce38 100644 --- llap-client/src/java/org/apache/hadoop/hive/llap/io/api/LlapIoProxy.java +++ llap-client/src/java/org/apache/hadoop/hive/llap/io/api/LlapIoProxy.java @@ -31,6 +31,16 @@ // singleton once (on daemon startup); the said singleton server as the IO interface. private static LlapIo io = null; + private static boolean isDaemon = false; + + public static void setDaemon(boolean isDaemon) { + LlapIoProxy.isDaemon = isDaemon; + } + + public static boolean isDaemon() { + return isDaemon; + } + public static LlapIo getIo() { return io; } diff --git llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java index 1d91adb..6f1f678 100644 --- llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java +++ llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java @@ -87,6 +87,7 @@ public LlapDaemon(LlapDaemonConfiguration daemonConf) { public void serviceInit(Configuration conf) { server.init(conf); containerRunner.init(conf); + LlapIoProxy.setDaemon(true); LlapIoProxy.initializeLlapIo(conf); } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java index c099668..d3e5d90 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/ObjectCacheFactory.java @@ -20,6 +20,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hadoop.hive.llap.io.api.LlapIoProxy; /** * ObjectCacheFactory returns the appropriate cache depending on settings in @@ -35,10 +36,13 @@ private ObjectCacheFactory() { * Returns the appropriate cache */ public static ObjectCache getCache(Configuration conf) { - if (HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("tez") && - HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_EXECUTION_MODE).equals("container")) { - return new org.apache.hadoop.hive.ql.exec.tez.ObjectCache(); - } else { + if (HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("tez")) { + if (LlapIoProxy.isDaemon()) { // daemon + return new org.apache.hadoop.hive.ql.exec.mr.ObjectCache(); + } else { // container + return new org.apache.hadoop.hive.ql.exec.tez.ObjectCache(); + } + } else { // mr or spark return new org.apache.hadoop.hive.ql.exec.mr.ObjectCache(); } }