2013-01-04 51 views
2

我試圖設置2個隊列 - 隊列1,隊列2。 我添加這些隊列的名稱到mapred-site.xml中Hadoop的容量調度程序 - 設置多個隊列

<property> 
     <name>mapred.queue.names</name> 
     <value>queue1,queue2</value> 
    </property> 

我配置CapacityScheduler.xml如下所示。

<?xml version="1.0"?> 
    <configuration> 
     <property> 
      <name>mapred.capacity-scheduler.maximum-system-jobs</name> 
      <value>3000</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.capacity</name> 
      <value>100</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.capacity</name> 
      <value>100</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.maximum-capacity</name> 
      <value>-1</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.maximum-capacity</name> 
      <value>-1</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.supports-priority</name> 
      <value>false</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.supports-priority</name> 
      <value>false</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.minimum-user-limit-percent</name> 
      <value>100</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.minimum-user-limit-percent</name> 
      <value>100</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.user-limit-factor</name> 
      <value>1</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.user-limit-factor</name> 
      <value>1</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.maximum-initialized-active-tasks</name> 
      <value>200000</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.maximum-initialized-active-tasks</name> 
      <value>200000</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.maximum-initialized-active-tasks-per-user</name> 
      <value>100000</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.maximum-initialized-active-tasks-per-user</name> 
      <value>100000</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.queue.queue1.init-accept-jobs-factor</name> 
      <value>10</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.queue.queue2.init-accept-jobs-factor</name> 
      <value>10</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.default-supports-priority</name> 
      <value>false</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.default-minimum-user-limit-percent</name> 
      <value>100</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.default-user-limit-factor</name> 
      <value>1</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.default-maximum-active-tasks-per-queue</name> 
      <value>200000</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.default-maximum-active-tasks-per-user</name> 
      <value>100000</value> 
     </property> 

     <property> 
      <name>mapred.capacity-scheduler.default-init-accept-jobs-factor</name> 
      <value>10</value> 
     </property> 

     <!-- Capacity scheduler Job Initialization configuration parameters --> 
     <property> 
      <name>mapred.capacity-scheduler.init-poll-interval</name> 
      <value>5000</value> 
     </property> 
     <property> 
      <name>mapred.capacity-scheduler.init-worker-threads</name> 
      <value>5</value> 
     </property> 
    </configuration> 

bin/start-all.sh啓動以下服務。

17083 DataNode 
    17557 TaskTracker 
    17373 JobTracker 
    16902 NameNode 
    17279 SecondaryNameNode 
    17703 Jps 

林能夠查看

http://localhost:50030/ 

的TaskTracker的WEB UI爲JobTracker的Web UI中

http://localhost:50060/ 

顯示 「無法連接」。但幾秒鐘後,jobtracker和tasktracker就會關閉。終端上的jps命令只顯示

17083 DataNode 
    16902 NameNode 
    17279 SecondaryNameNode 
    17703 Jps 

什麼可能是解決方案。

+0

我面對完全相同的問題,找到任何解決方案嗎? – CruncherBigData

回答

2

您的兩個隊列的容量均爲100,這使容量調度程序認爲有幾個隊列的容量均爲100%。我建議你將設置更改爲:

<?xml version="1.0"?> 
<configuration> 
    <property> 
     <name>mapred.capacity-scheduler.maximum-system-jobs</name> 
     <value>3000</value> 
    </property> 
    <property> 
     <name>mapred.capacity-scheduler.queue.queue1.capacity</name> 
     <value>80</value> <!-- change here --> 
    </property> 
    <property> 
     <name>mapred.capacity-scheduler.queue.queue2.capacity</name> 
     <value>20</value> <!-- change here --> 
    </property> 

    <property> 
     <name>mapred.capacity-scheduler.queue.queue1.maximum-capacity</name> 
     <value>-1</value> 
    </property> 
    <property> 
     <name>mapred.capacity-scheduler.queue.queue2.maximum-capacity</name> 
     <value>-1</value> 
    </property> 
0

所有隊列的總和必須始終只有100(即100%),您可以分別有兩個隊列100和0%的 - 這是有效的。

此外,我認爲總是有一個「默認」隊列,至少有一些分配是一個很好的做法。如果在沒有默認情況下不指定隊列名稱,我不知道調度程序會執行什麼操作。