
我的印像是,可以將多個 JobTracker 節點配置為共用相同組 MR(TaskTracker)節點。我知道,按照慣例,Hadoop 叢集中的所有節點都應該具有相同的設定檔集(按照慣例/etc/hadoop/conf/
,至少對於 Cloudera Distribution of Hadoop (CDH) 來說是這樣。我們可以在 中定義多個作業追蹤器嗎mapred-site.xml
?類似:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>jt01.mydomain.not:8021</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>jt02.mydomain.not:8021</value>
</property>
...
</configuration>
或是有其他允許的語法嗎?
這樣做有什麼影響。每個JobTracker是否取得每個TaskTracker節點上的負載的資訊。換句話說,兩個 JobTracker 是否可以僅根據來自 TT 的八卦資訊來協調 TT 節點之間的調度,或者它們是否需要相互通訊?
這有記錄在任何地方嗎?
答案1
多個 JobTracker 在多叢集架構中非常有用。因此叢集層級的負載可以在JobTracker之間分配。
在單一集群中,跟隨可能會成為問題。
(a) 如果多個JobTracker伺服器共用一個HDFS集群,則每個JobTracker伺服器必須有不同的mapred.system.dir,否則JobTracker將刪除彼此的作業檔案。
(b) 管理腳本「全部啟動或全部停止」將成為一個問題,除非每個腳本都有不同的連接埠。