Hadoop 从属文件是否必要?

Hadoop 从属文件是否必要?

我正在与一个团队合作,尝试创建一个系统,以尽量减少用户的工作量,从而在 EC2 上创建 Hadoop 集群。理想情况下,我们希望从属实例在启动时只需要主实例的主机名作为用户数据。然后,从属实例将从主实例 rsync 其配置,并自动启动其 TaskTracker 和 DataNode 守护程序。

我的问题是:从属实例的主机名是否有必要列在主实例的conf/slaves文件中?我唯一一次看到此文件在 Hadoop 代码中使用是通过脚本start-{dfs,mapred}.sh,该脚本通过 SSH 进入列出的所有计算机并启动守护进程。如果从属节点上的守护进程自动启动,并且它们知道 JobTracker 和 NameNode 的位置(通过配置),它们是否可以自行连接到 JobTracker/NameNode 并被视为“普通”从属节点?

我想最好的办法就是尝试一下,但我们想知道这种系统的时间投入/复杂性,所以我想看看这里是否有人有解决此问题的经验。如果我自己找到答案,我会进行编辑。

编辑:我对此进行了测试,整个系统似乎在配置中没有列出从属服务器的情况下也能正常工作。JobTracker 在其节点列表下显示从属 TaskTracker,并且我已成功运行测试作业。

另一项编辑:值得注意的是,如果您使用 DFS 主机白名单(conf/dfs.hosts),这将不起作用,这至少是 Cloudera 发行版上的一项功能。

答案1

从属文件仅由 bin/start 和 stop 脚本使用。如果您在 EC2 上运行,则应检查 EC2 脚本,例如“hadoop-ec2 update-slaves-file”

相关内容