如何将作业提交到 Hadoop 中的特定节点



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

目前,我所知道的唯一方法是退役从属服务器并从Hadoop集群中删除。但这似乎是一项繁琐的任务。我想知道是否有更简单的方法可以避免从群集中删除节点。

谢谢。

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

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

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

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

编辑

:只需编辑文件hdfs-site.xml和mapred-site.xml并执行hadoop dfsadmin -refreshNodes可能会使您的数据节点长时间处于停用节点状态。因此,还需要将 dfs.replication 更改为适当的值。

相关内容

  • 没有找到相关文章

最新更新