diff --git itests/src/test/resources/testconfiguration.properties itests/src/test/resources/testconfiguration.properties index 79e676c..5fb699a 100644 --- itests/src/test/resources/testconfiguration.properties +++ itests/src/test/resources/testconfiguration.properties @@ -44,6 +44,7 @@ minimr.query.files=auto_sortmerge_join_16.q,\ stats_counter_partitioned.q,\ temp_table_external.q,\ truncate_column_buckets.q,\ + uber_reduce.q,\ udf_using.q minitez.query.files.shared=alter_merge_2_orc.q,\ diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java index 70047a2..385bef5 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java @@ -326,7 +326,9 @@ private static BaseWork getBaseWork(Configuration conf, String name) { assert path != null; if (!gWorkMap.containsKey(path)) { Path localPath; - if (ShimLoader.getHadoopShims().isLocalMode(conf)) { + if (conf.getBoolean("mapreduce.task.uberized", false) && name.equals(REDUCE_PLAN_NAME)) { + localPath = new Path(name); + } else if (ShimLoader.getHadoopShims().isLocalMode(conf)) { localPath = path; } else { localPath = new Path(name); diff --git ql/src/test/queries/clientpositive/uber_reduce.q ql/src/test/queries/clientpositive/uber_reduce.q new file mode 100644 index 0000000..bcef271 --- /dev/null +++ ql/src/test/queries/clientpositive/uber_reduce.q @@ -0,0 +1,11 @@ +SET mapreduce.job.ubertask.enable=true; +SET mapreduce.job.ubertask.maxreduces=1; +SET mapred.reduce.tasks=1; + +-- Uberized mode is a YARN option, ignore this test for non-YARN Hadoop versions +-- EXCLUDE_HADOOP_MAJOR_VERSIONS(0.20,0.20S) + +CREATE TABLE T1(key STRING, val STRING); +LOAD DATA LOCAL INPATH '../../data/files/T1.txt' INTO TABLE T1; + +SELECT count(*) FROM T1; diff --git ql/src/test/results/clientpositive/uber_reduce.q.out ql/src/test/results/clientpositive/uber_reduce.q.out new file mode 100644 index 0000000..3888380 --- /dev/null +++ ql/src/test/results/clientpositive/uber_reduce.q.out @@ -0,0 +1,31 @@ +PREHOOK: query: -- Uberized mode is a YARN option, ignore this test for non-YARN Hadoop versions +-- EXCLUDE_HADOOP_MAJOR_VERSIONS(0.20,0.20S) + +CREATE TABLE T1(key STRING, val STRING) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@T1 +POSTHOOK: query: -- Uberized mode is a YARN option, ignore this test for non-YARN Hadoop versions +-- EXCLUDE_HADOOP_MAJOR_VERSIONS(0.20,0.20S) + +CREATE TABLE T1(key STRING, val STRING) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@T1 +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/T1.txt' INTO TABLE T1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@t1 +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/T1.txt' INTO TABLE T1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@t1 +PREHOOK: query: SELECT count(*) FROM T1 +PREHOOK: type: QUERY +PREHOOK: Input: default@t1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT count(*) FROM T1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t1 +#### A masked pattern was here #### +6