You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by to...@apache.org on 2011/05/19 22:15:48 UTC
svn commit: r1125081 - in /hadoop/mapreduce/branches/branch-0.22:
CHANGES.txt src/java/org/apache/hadoop/mapred/TaskLogAppender.java
src/java/org/apache/hadoop/mapred/TaskRunner.java
Author: todd
Date: Thu May 19 20:15:47 2011
New Revision: 1125081
URL: http://svn.apache.org/viewvc?rev=1125081&view=rev
Log:
MAPREDUCE-2372. TaskLogAppender mechanism shouldn't be set up in log4j.properties. Contributed by Todd Lipcon.
Modified:
hadoop/mapreduce/branches/branch-0.22/CHANGES.txt
hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskLogAppender.java
hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskRunner.java
Modified: hadoop/mapreduce/branches/branch-0.22/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/branch-0.22/CHANGES.txt?rev=1125081&r1=1125080&r2=1125081&view=diff
==============================================================================
--- hadoop/mapreduce/branches/branch-0.22/CHANGES.txt (original)
+++ hadoop/mapreduce/branches/branch-0.22/CHANGES.txt Thu May 19 20:15:47 2011
@@ -214,6 +214,9 @@ Release 0.22.0 - Unreleased
MAPREDUCE-2502. JobSubmitter should use mapreduce.job.maps instead of
its deprecated equivalent. (eli via todd)
+ MAPREDUCE-2372. TaskLogAppender mechanism shouldn't be set up in
+ log4j.properties (todd)
+
OPTIMIZATIONS
MAPREDUCE-1354. Enhancements to JobTracker for better performance and
Modified: hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskLogAppender.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskLogAppender.java?rev=1125081&r1=1125080&r2=1125081&view=diff
==============================================================================
--- hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskLogAppender.java (original)
+++ hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskLogAppender.java Thu May 19 20:15:47 2011
@@ -34,13 +34,20 @@ import org.apache.log4j.spi.LoggingEvent
public class TaskLogAppender extends FileAppender {
private String taskId; //taskId should be managed as String rather than TaskID object
//so that log4j can configure it from the configuration(log4j.properties).
- private int maxEvents;
+ private Integer maxEvents;
private Queue<LoggingEvent> tail = null;
- private boolean isCleanup;
+ private Boolean isCleanup;
+
+ // System properties passed in from JVM runner
+ static final String ISCLEANUP_PROPERTY = "hadoop.tasklog.iscleanup";
+ static final String LOGSIZE_PROPERTY = "hadoop.tasklog.totalLogFileSize";
+ static final String TASKID_PROPERTY = "hadoop.tasklog.taskid";
@Override
public void activateOptions() {
synchronized (this) {
+ setOptionsFromSystemProperties();
+
if (maxEvents > 0) {
tail = new LinkedList<LoggingEvent>();
}
@@ -50,6 +57,26 @@ public class TaskLogAppender extends Fil
super.activateOptions();
}
}
+
+ /**
+ * The Task Runner passes in the options as system properties. Set
+ * the options if the setters haven't already been called.
+ */
+ private synchronized void setOptionsFromSystemProperties() {
+ if (isCleanup == null) {
+ String propValue = System.getProperty(ISCLEANUP_PROPERTY, "false");
+ isCleanup = Boolean.valueOf(propValue);
+ }
+
+ if (taskId == null) {
+ taskId = System.getProperty(TASKID_PROPERTY);
+ }
+
+ if (maxEvents == null) {
+ String propValue = System.getProperty(LOGSIZE_PROPERTY, "0");
+ setTotalLogFileSize(Long.valueOf(propValue));
+ }
+ }
@Override
public void append(LoggingEvent event) {
@@ -83,21 +110,21 @@ public class TaskLogAppender extends Fil
* Getter/Setter methods for log4j.
*/
- public String getTaskId() {
+ public synchronized String getTaskId() {
return taskId;
}
- public void setTaskId(String taskId) {
+ public synchronized void setTaskId(String taskId) {
this.taskId = taskId;
}
private static final int EVENT_SIZE = 100;
- public long getTotalLogFileSize() {
+ public synchronized long getTotalLogFileSize() {
return maxEvents * EVENT_SIZE;
}
- public void setTotalLogFileSize(long logSize) {
+ public synchronized void setTotalLogFileSize(long logSize) {
maxEvents = (int) logSize / EVENT_SIZE;
}
@@ -107,7 +134,7 @@ public class TaskLogAppender extends Fil
* @param isCleanup
* true if the task is cleanup attempt, false otherwise.
*/
- public void setIsCleanup(boolean isCleanup) {
+ public synchronized void setIsCleanup(boolean isCleanup) {
this.isCleanup = isCleanup;
}
@@ -116,7 +143,7 @@ public class TaskLogAppender extends Fil
*
* @return true if the task is cleanup attempt, false otherwise.
*/
- public boolean getIsCleanup() {
+ public synchronized boolean getIsCleanup() {
return isCleanup;
}
}
Modified: hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskRunner.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskRunner.java?rev=1125081&r1=1125080&r2=1125081&view=diff
==============================================================================
--- hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskRunner.java (original)
+++ hadoop/mapreduce/branches/branch-0.22/src/java/org/apache/hadoop/mapred/TaskRunner.java Thu May 19 20:15:47 2011
@@ -460,9 +460,10 @@ abstract class TaskRunner extends Thread
vargs.add("-Dhadoop.log.dir=" +
new File(System.getProperty("hadoop.log.dir")).getAbsolutePath());
vargs.add("-Dhadoop.root.logger=" + getLogLevel(conf).toString() + ",TLA");
- vargs.add("-Dhadoop.tasklog.taskid=" + taskid);
- vargs.add("-Dhadoop.tasklog.iscleanup=" + t.isTaskCleanupTask());
- vargs.add("-Dhadoop.tasklog.totalLogFileSize=" + logSize);
+ vargs.add("-D" + TaskLogAppender.TASKID_PROPERTY + "=" + taskid);
+ vargs.add("-D" + TaskLogAppender.ISCLEANUP_PROPERTY +
+ "=" + t.isTaskCleanupTask());
+ vargs.add("-D" + TaskLogAppender.LOGSIZE_PROPERTY + "=" + logSize);
}
/**