3

我使用不断变化的数据输入运行一些批处理作业,并且在配置容量时遇到问题。我正在使用 whirl 进行初始设置,但是一旦启动,例如,5 台机器,我不知道如何在其运行时向其添加新机器。我事先不知道数据会有多复杂或有多大,所以我想知道是否有办法将新机器添加到集群并让它立即生效(或者有一些延迟但不想必须关闭集群并使用新节点启动它)。

4

2 回答 2

10

有如何添加节点的确切解释: http ://wiki.apache.org/hadoop/FAQ#I_have_a_new_node_I_want_to_add_to_a_running_Hadoop_cluster.3B_how_do_I_start_services_on_just_one_node.3F

同时 - 我不确定已经运行的作业是否会利用这些节点,因为计划在哪里运行每个任务是在作业开始时发生的(据我所知)。
我也认为只在这些临时节点上运行任务跟踪器更实用。

于 2012-04-23T18:21:18.313 回答
3

检查以下参数引用的文件:

  • dfs.hosts => dfs.include
  • dfs.hosts.exclude
  • mapreduce.jobtracker.hosts.filename => mapred.include
  • mapreduce.jobtracker.hosts.exclude.filename

您可以将主机列表添加到文件 dfs.include 和 mapred.include 中,然后运行

hadoop mradmin -refreshNodes ;

hadoop dfsadmin -refreshNodes ;

就这样。

顺便说一句,“mradmin -refreshNodes”设施是在 0.21 中添加的

尼基尔

于 2012-04-26T14:48:40.227 回答