Explorar o código

Fix for hadoop-1763

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@572580 13f79535-47bb-0310-9956-ffa450edef68
Devaraj Das %!s(int64=17) %!d(string=hai) anos
pai
achega
ab246d53be
Modificáronse 3 ficheiros con 15 adicións e 1 borrados
  1. 4 0
      CHANGES.txt
  2. 9 0
      conf/hadoop-default.xml
  3. 2 1
      src/java/org/apache/hadoop/mapred/JobTracker.java

+ 4 - 0
CHANGES.txt

@@ -55,6 +55,10 @@ Trunk (unreleased changes)
 
   BUG FIXES
 
+    HADOOP-1763. Too many lost task trackers on large clusters due to
+    insufficient number of RPC handler threads on the JobTracker.
+    (Devaraj Das)
+
     HADOOP-1463.  HDFS report correct usage statistics for disk space
     used by HDFS.  (Hairong Kuang via dhruba)
 

+ 9 - 0
conf/hadoop-default.xml

@@ -466,6 +466,15 @@ creations/deletions), or "all".</description>
   </description>
 </property>
 
+<property>
+  <name>mapred.job.tracker.handler.count</name>
+  <value>10</value>
+  <description>
+    The number of server threads for the JobTracker. This should be roughly
+    4% of the number of tasktracker nodes.
+  </description>
+</property>
+
 <property>
   <name>mapred.task.tracker.report.bindAddress</name>
   <value>127.0.0.1</value>

+ 2 - 1
src/java/org/apache/hadoop/mapred/JobTracker.java

@@ -645,7 +645,8 @@ public class JobTracker implements MRConstants, InterTrackerProtocol, JobSubmiss
     InetSocketAddress addr = getAddress(conf);
     this.localMachine = addr.getHostName();
     this.port = addr.getPort();
-    this.interTrackerServer = RPC.getServer(this, addr.getHostName(), addr.getPort(), 10, false, conf);
+    int handlerCount = conf.getInt("mapred.job.tracker.handler.count", 10);
+    this.interTrackerServer = RPC.getServer(this, addr.getHostName(), addr.getPort(), handlerCount, false, conf);
     this.interTrackerServer.start();
     Properties p = System.getProperties();
     for (Iterator it = p.keySet().iterator(); it.hasNext();) {