Index: common/src/java/org/apache/hadoop/hive/conf/HiveConf.java =================================================================== --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (revision 1631605) +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (working copy) @@ -958,6 +958,9 @@ HIVETEZCONTAINERSIZE("hive.tez.container.size", -1, "By default Tez will spawn containers of the size of a mapper. This can be used to overwrite."), + HIVETEZCPUVCORES("hive.tez.cpu.vcores", -1, + "By default Tez will ask for however many cpus map-reduce is configured to use per container. " + +"This can be used to overwrite."), HIVETEZJAVAOPTS("hive.tez.java.opts", null, "By default Tez will use the Java options from map tasks. This can be used to overwrite."), HIVETEZLOGLEVEL("hive.tez.log.level", "INFO", Index: ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java (revision 1631605) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java (working copy) @@ -431,8 +431,9 @@ int memory = HiveConf.getIntVar(conf, HiveConf.ConfVars.HIVETEZCONTAINERSIZE) > 0 ? HiveConf.getIntVar(conf, HiveConf.ConfVars.HIVETEZCONTAINERSIZE) : conf.getInt(MRJobConfig.MAP_MEMORY_MB, MRJobConfig.DEFAULT_MAP_MEMORY_MB); - int cpus = conf.getInt(MRJobConfig.MAP_CPU_VCORES, - MRJobConfig.DEFAULT_MAP_CPU_VCORES); + int cpus = HiveConf.getIntVar(conf, HiveConf.ConfVars.HIVETEZCPUVCORES) > 0 ? + HiveConf.getIntVar(conf, HiveConf.ConfVars.HIVETEZCPUVCORES) : + conf.getInt(MRJobConfig.MAP_CPU_VCORES, MRJobConfig.DEFAULT_MAP_CPU_VCORES); return Resource.newInstance(memory, cpus); } @@ -452,17 +453,29 @@ */ private String getContainerJavaOpts(Configuration conf) { String javaOpts = HiveConf.getVar(conf, HiveConf.ConfVars.HIVETEZJAVAOPTS); - if (javaOpts != null && !javaOpts.isEmpty()) { - String logLevel = HiveConf.getVar(conf, HiveConf.ConfVars.HIVETEZLOGLEVEL); - List logProps = Lists.newArrayList(); - TezUtils.addLog4jSystemProperties(logLevel, logProps); - StringBuilder sb = new StringBuilder(); - for (String str : logProps) { - sb.append(str).append(" "); + + String logLevel = HiveConf.getVar(conf, HiveConf.ConfVars.HIVETEZLOGLEVEL); + List logProps = Lists.newArrayList(); + TezUtils.addLog4jSystemProperties(logLevel, logProps); + StringBuilder sb = new StringBuilder(); + for (String str : logProps) { + sb.append(str).append(" "); + } + logLevel = sb.toString(); + + if (HiveConf.getIntVar(conf, HiveConf.ConfVars.HIVETEZCONTAINERSIZE) > 0) { + if (javaOpts != null) { + return javaOpts + " " + logLevel; + } else { + return logLevel; } - return javaOpts + " " + sb.toString(); + } else { + if (javaOpts != null && !javaOpts.isEmpty()) { + LOG.warn(HiveConf.ConfVars.HIVETEZJAVAOPTS + " will be ignored because " + + HiveConf.ConfVars.HIVETEZCONTAINERSIZE + " is not set!"); + } + return logLevel + " " + MRHelpers.getJavaOptsForMRMapper(conf); } - return MRHelpers.getJavaOptsForMRMapper(conf); } private Vertex createVertex(JobConf conf, MergeJoinWork mergeJoinWork, LocalResource appJarLr,