当我设置 Hadoop 时,一个问题一直浮现在我的脑海中,但我找不到答案。
需要将哪些 Hadoop 配置文件复制到哪些节点。例如,我正在对以下文件进行更改:
hadoop-env.sh、core-site.xml、mapred-site.xml、hdfs-site.xml、主服务器、从服务器
我是否需要将这些文件复制到我的所有 Hadoop 节点(如果我更新一个文件,这会很麻烦)。是否只需要复制某些文件?或者,我是否只需要在主节点上进行更改?
似乎在任何地方都找不到答案,所以我想在这里问。(到目前为止,我已经在每个节点上镜像了所有文件,但这似乎效率低下。我的设置确实有效。)
答案1
就读取哪些文件而言:
hadoop-env.sh
: 一切core-site.xml
: 一切hdfs-site.xml
:HDFS(名称节点、辅助名称节点、数据节点)mapred-site.xml
:MapReduce(JobTracker、TaskTracker)masters
和slaves
:我不认为这些是由应用程序直接读取的,而是由管理脚本使用的。
不过,我建议设置一个部署系统,这样你就可以轻松地将所有这些文件分发到所有节点,而不必费力弄清楚需要什么。这可能只是一个ssh
使用公钥身份验证调用的脚本,也可能是 Puppet 或 Chef 之类的东西。