diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/tez/Utils.java ql/src/java/org/apache/hadoop/hive/ql/exec/tez/Utils.java index 3eb858b..8a4fc08 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/tez/Utils.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/tez/Utils.java @@ -20,10 +20,12 @@ import java.io.IOException; import java.util.List; +import org.apache.commons.lang.ArrayUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.llap.registry.ServiceInstance; import org.apache.hadoop.hive.llap.registry.impl.LlapRegistryService; +import org.apache.hadoop.mapred.InputSplit; import org.apache.hadoop.mapred.split.SplitLocationProvider; import org.slf4j.Logger; @@ -51,7 +53,21 @@ public static SplitLocationProvider getSplitLocationProvider(Configuration conf, } splitLocationProvider = new HostAffinitySplitLocationProvider(locations); } else { - splitLocationProvider = null; + splitLocationProvider = new SplitLocationProvider() { + @Override + public String[] getLocations(InputSplit split) throws IOException { + if (split == null) { + return null; + } + String[] locations = split.getLocations(); + if (locations != null && locations.length == 1) { + if ("localhost".equals(locations[0])) { + return ArrayUtils.EMPTY_STRING_ARRAY; + } + } + return locations; + } + }; } return splitLocationProvider; }