我有一个 Hadoop 集群,有 1 个 Master 和 5 个 Slave。有什么方法可以将工作提交给特定的奴隶组吗?基本上我想做的是用多种可能性对我的应用程序进行基准测试。因此,在使用 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更改为合适的值。
Hadoop中的特定节点是指Hadoop集群中执行特定角色的单个机器,例如NameNode、DataNode和ResourceManager。 NameNode 管理元数据并协调数据存储,而 DataNode 存储和管理数据块。 ResourceManager 监督资源分配和作业调度,为 Hadoop 的大数据分析分布式处理能力做出贡献。
立即申请最佳工作。巴基斯坦最佳招聘机构。