我的印象是,可能有多个 JobTracker 节点配置为共享同一组 MR (TaskTracker) 节点。我知道,按照惯例,Hadoop 集群中的所有节点都应该具有相同的配置文件集(通常在/etc/hadoop/conf/
--- 至少对于 Hadoop 的 Cloudera 分发版(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 节点的调度,或者他们是否需要相互交谈?
这在任何地方都有记录吗?
多个 JobTracker 在多集群架构中很有用。因此,集群级别的负载可以在 JobTracker 之间分配。
在单个集群中,跟随可能会成为问题。
(a) 如果多个 JobTracker 服务器将共享一个 HDFS 集群,每个服务器必须有不同的 mapred.system.dir,否则 JobTracker 将删除彼此的作业文件。
(b) 管理脚本“Start-all or stop-all”将成为一个问题,除非每个都获得不同的端口。