2

我有一个 Hadoop 集群,有 1 个主服务器和 5 个从服务器。有没有办法将作业提交给特定的奴隶集?基本上我想做的是用多种可能性对我的应用程序进行基准测试。因此,在用 5 个从属设备进行测试后,我想用 4 个从属设备运行我的应用程序,然后是 3 个从属设备,依此类推。

目前我知道的唯一方法是退役一个从属服务器并从 hadoop 集群中删除。但这似乎是一项乏味的任务。我想知道是否有更简单的方法来避免从集群中删除节点。

谢谢。

4

3 回答 3

2

在 hadoop/conf 中有一个名为 'slaves' 的文件,您可以简单地添加或删除节点,然后重新启动您的 dfs 和 mapred。

于 2013-10-15T07:32:46.610 回答
1

有一个设置指向一个文件,其中包含您可以在 mapred-site-xml 中设置的排除主机列表。虽然也有点麻烦,但更改单个配置值可能更适合物理退役和重新调试多个节点。您可以提前准备多个主机排除文件,更改设置并重新启动 mapreduce 服务。重新启动 mapreduce 服务非常快。

在 0.23中,这个设置被命名为 mapreduce.jobtracker.hosts.exclude.filename。这是 0.21 中引入的一项功能,尽管我相信该设置当时被命名为 mapred.hosts.exclude。检查您正在使用的 Hadoop 版本调用此设置的内容。

于 2013-10-15T03:41:08.770 回答
0

对于遇到此问题的人,来自 Alex 和stackoverflow 问题的评论将有助于从 hadoop 集群中成功停用节点。

编辑:仅编辑文件 hdfs-site.xml 和 mapred-site.xml 并执行hadoop dfsadmin -refreshNodes可能会使您的数据节点长时间处于停用节点状态。所以也需要将 dfs.replication 改成合适的值。

于 2013-10-15T06:25:55.427 回答