0

在分布式 Hadoop 集群上,我可以将相同的 hdfs-site.xml 文件复制到 namenodes 和 datanodes 吗?

我见过的一些设置说明(即 Cloudera)说在 datanodes 上的这个文件中有 dfs.data.dir 属性,在 namenode 上的这个文件中有 dfs.name.dir 属性。这意味着我应该有两份 hdfs-site.xml,一份用于名称节点,一份用于数据节点。

但是,如果一切都一样,我宁愿只拥有/维护文件的一份副本,并在我更改它时将其推送到所有节点。在同一个文件中同时拥有 dfs.name.dir 和 dfs.data.dir 属性是否有任何危害/风险?如果数据节点看到 "dfs.name.dir" 的属性,可能会发生什么问题?如果有问题,namenode 上的 hdfs-site.xml 文件中应该有哪些其他属性,而不是 datanode 上的?反之亦然。

最后,我复制到客户端机器的 hdfs-site.xml 文件中需要包含哪些属性(它不是 tasktracker 或 datanode,只是与 Hadoop 集群对话)?

我四处搜索,包括 O'reilly 操作书,但找不到任何描述配置文件如何在不同节点之间有所不同的好文章。谢谢!

4

1 回答 1

0

namenode 是从 masters 文件中提取的,因此即使您复制了相同的 hdfs-site.xml,FSimage 和编辑日志也只会写入 namenode 而不会写入 datanode。

对于第二个问题..如果不直接在集群上,您不一定可以与 hdfs 通信。如果您想拥有一个远程客户端,您可以尝试使用 webhdfs 并创建某些 Web 服务,您可以使用这些服务在 hdfs 中写入或访问文件

于 2013-02-06T02:58:22.987 回答