我有一个拥有1个Master和5个slave的Hadoop集群。有没有办法向特定的奴隶提交工作?基本上我正在尝试做的是使我的应用程序具有许多可能性。因此,在测试了5个从站之后,我想用4个从站运行我的应用程序,然后运行3个从站,依此类推。
目前,我所知道的唯一方法是停用从机并从hadoop集群中删除。但这似乎是一项繁琐的工作。我想知道是否有更简单的方法,以避免从群集中删除节点。
感谢。
答案 0 :(得分:2)
在hadoop / conf中有一个名为'slaves'的文件,你只需添加或删除节点,然后重新启动你的dfs和mapred。
答案 1 :(得分:1)
有一个设置指向一个文件,其中包含您可以在mapred-site-xml中设置的排除主机列表。虽然也有点麻烦,但是改变单个配置值可能优选在物理上退役并重新调试多个节点。您可以提前准备多个主机排除文件,更改设置并重新启动mapreduce服务。重新启动mapreduce服务非常快。
In 0.23此设置名为mapreduce.jobtracker.hosts.exclude.filename。这是0.21中引入的一个功能,但我相信该设置名为mapred.hosts.exclude。检查为您正在使用的Hadoop版本调用此设置的内容。
答案 2 :(得分:0)
对于遇到此问题的人,Alex和stackoverflow question的评论将有助于成功解除hadoop群集中的节点。
编辑:只编辑文件hdfs-site.xml和mapred-site.xml并执行hadoop dfsadmin -refreshNodes
可能会使您的datanode长时间退役节点状态。因此,还需要将dfs.replication更改为适当的值。