Author: rohini
Date: Tue Aug 18 19:49:11 2015
New Revision: 1696487
URL: http://svn.apache.org/r1696487
Log:
PIG-4654: Reduce tez memory.reserve-fraction and clear spillables for better
memory utilization (rohini)
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/runtime/PigProcessor.java
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/util/MRToTezHelper.java
pig/trunk/src/org/apache/pig/impl/util/SpillableMemoryManager.java
Modified: pig/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1696487&r1=1696486&r2=1696487&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Tue Aug 18 19:49:11 2015
@@ -38,6 +38,8 @@ PIG-4639: Add better parser for Apache H
BUG FIXES
+PIG-4654: Reduce tez memory.reserve-fraction and clear spillables for better
memory utilization (rohini)
+
PIG-4628: Pig 0.14 job with order by fails in mapreduce mode with Oozie
(knoguchi)
PIG-4651: Optimize NullablePartitionWritable serialization for skewed join
(rohini)
Modified:
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/runtime/PigProcessor.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/runtime/PigProcessor.java?rev=1696487&r1=1696486&r2=1696487&view=diff
==============================================================================
---
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/runtime/PigProcessor.java
(original)
+++
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/runtime/PigProcessor.java
Tue Aug 18 19:49:11 2015
@@ -193,6 +193,8 @@ public class PigProcessor extends Abstra
leaf = leaves.get(0);
}
+ LOG.info("Aliases being processed per job phase
(AliasName[line,offset]): " + conf.get("pig.alias.location"));
+
runPipeline(leaf);
// Calling EvalFunc.finish()
Modified:
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/util/MRToTezHelper.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/util/MRToTezHelper.java?rev=1696487&r1=1696486&r2=1696487&view=diff
==============================================================================
---
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/util/MRToTezHelper.java
(original)
+++
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/util/MRToTezHelper.java
Tue Aug 18 19:49:11 2015
@@ -180,6 +180,9 @@ public class MRToTezHelper {
tezConf.get(MRJobConfig.JOB_CANCEL_DELEGATION_TOKEN));
}
+ // Hardcoding at AM level instead of setting per vertex till TEZ-2710
is available
+
dagAMConf.setIfUnset(TezConfiguration.TEZ_TASK_SCALE_MEMORY_RESERVE_FRACTION,
"0.5");
+
removeUnwantedMRSettings(dagAMConf);
return dagAMConf;
Modified: pig/trunk/src/org/apache/pig/impl/util/SpillableMemoryManager.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/impl/util/SpillableMemoryManager.java?rev=1696487&r1=1696486&r2=1696487&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/impl/util/SpillableMemoryManager.java
(original)
+++ pig/trunk/src/org/apache/pig/impl/util/SpillableMemoryManager.java Tue Aug
18 19:49:11 2015
@@ -36,6 +36,8 @@ import javax.management.openmbean.Compos
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.pig.JVMReuseManager;
+import org.apache.pig.StaticDataCleanup;
/**
* This class Tracks the tenured pool and a list of Spillable objects. When
memory gets low, this
@@ -48,7 +50,7 @@ import org.apache.commons.logging.LogFac
*/
public class SpillableMemoryManager implements NotificationListener {
- private final Log log = LogFactory.getLog(getClass());
+ private static final Log log =
LogFactory.getLog(SpillableMemoryManager.class);
private LinkedList<WeakReference<Spillable>> spillables = new
LinkedList<WeakReference<Spillable>>();
// References to spillables with size
@@ -89,7 +91,17 @@ public class SpillableMemoryManager impl
private volatile boolean blockRegisterOnSpill = false;
- private static volatile SpillableMemoryManager manager = new
SpillableMemoryManager();
+ private static final SpillableMemoryManager manager = new
SpillableMemoryManager();
+
+ static {
+
JVMReuseManager.getInstance().registerForStaticDataCleanup(SpillableMemoryManager.class);
+ }
+
+ @StaticDataCleanup
+ public static void cleanupStaticData() {
+ manager.spillables.clear();
+ manager.accumulatedFreeSize = 0L;
+ }
private SpillableMemoryManager() {
((NotificationEmitter)ManagementFactory.getMemoryMXBean()).addNotificationListener(this,
null, null);