Author: heyongqiang
Date: Thu Nov 17 00:06:36 2011
New Revision: 1202942
URL: http://svn.apache.org/viewvc?rev=1202942&view=rev
Log:
HIVE-2578: Debug mode doesn't work properly with MapRedLocalTask (Robert
Surówka via He Yongqiang)
Modified:
hive/trunk/bin/ext/debug.sh
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
Modified: hive/trunk/bin/ext/debug.sh
URL:
http://svn.apache.org/viewvc/hive/trunk/bin/ext/debug.sh?rev=1202942&r1=1202941&r2=1202942&view=diff
==============================================================================
--- hive/trunk/bin/ext/debug.sh (original)
+++ hive/trunk/bin/ext/debug.sh Thu Nov 17 00:06:36 2011
@@ -39,6 +39,11 @@ set_debug_param(){
childSuspend)
child_suspend="suspend=${pair[1]}"
;;
+ swapSuspend)
+ tmp=$child_suspend
+ child_suspend=$main_suspend
+ main_suspend=$tmp
+ ;;
*)
;;
esac
@@ -89,5 +94,6 @@ debug_help(){
echo "port=<port_number> Port on which main JVM listens for debug
connection. Default: 8000"
echo "mainSuspend=<y|n> Should main JVM wait with execution for
the debugger to connect. Default: y"
echo "childSuspend=<y|n> Should child JVMs wait with execution for
the debugger to connect. Default: n"
+ echo "swapSuspend Swaps suspend options between main and
child JVMs"
echo
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java?rev=1202942&r1=1202941&r2=1202942&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java Thu
Nov 17 00:06:36 2011
@@ -303,7 +303,7 @@ public class MapRedTask extends ExecDriv
}
}
- private void configureDebugVariablesForChildJVM(Map<String, String>
environmentVariables) {
+ static void configureDebugVariablesForChildJVM(Map<String, String>
environmentVariables) {
// this method contains various asserts to warn if environment variables
are in a buggy state
assert environmentVariables.containsKey(HADOOP_CLIENT_OPTS)
&& environmentVariables.get(HADOOP_CLIENT_OPTS) != null :
HADOOP_CLIENT_OPTS
@@ -539,7 +539,7 @@ public class MapRedTask extends ExecDriv
return null;
}
-
+
@Override
public Operator<? extends Serializable> getReducer() {
return getWork().getReducer();
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java?rev=1202942&r1=1202941&r2=1202942&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
Thu Nov 17 00:06:36 2011
@@ -200,6 +200,11 @@ public class MapredLocalTask extends Tas
} else {
variables.put(HADOOP_OPTS_KEY, hadoopOpts);
}
+
+ if(variables.containsKey(MapRedTask.HIVE_DEBUG_RECURSIVE)) {
+ MapRedTask.configureDebugVariablesForChildJVM(variables);
+ }
+
env = new String[variables.size()];
int pos = 0;
for (Map.Entry<String, String> entry : variables.entrySet()) {
@@ -458,7 +463,7 @@ public class MapredLocalTask extends Tas
public Collection<Operator<? extends Serializable>> getTopOperators() {
return getWork().getAliasToWork().values();
}
-
+
@Override
public String getName() {
return "MAPREDLOCAL";