hadoop中core-site.xml中fs.defaultFS属性的含义

时间:2016-11-24 20:05:44

标签: hadoop

我正在尝试在完全分布式模式下设置hadoop,并且在某种程度上我成功地做到了这一点。

但是,我对core-site.xml中的一个参数设置有疑问 - > fs.defaultFS

在我的设置中,我有三个节点,如下所述:

Node1 - 192.168.1.2 - >配置为Master(运行ResourceManager和NameNode守护进程)

Node2 - 192.168.1.3 - >配置为Slave(运行NodeManager和Datanode守护进程)

Node3 - 192.168.1.4 - >配置为Slave(运行NodeManager和Datanode守护进程)

现在属性fs.defaultFS是什么意思?例如,如果我这样设置:

<property>
   <name>fs.default.name</name>
   <value>hdfs://192.168.1.2:9000/</value>
</property>

我无法理解hdfs://192.168.1.2:9000的含义。我可以发现hdfs意味着我们正在使用hdfs文件系统,但其他部分意味着什么?

这是否意味着IP地址为192.168.1.2的主机在端口9000上运行Namenode?

任何人都可以帮我理解这个吗?

2 个答案:

答案 0 :(得分:14)

在此代码中:

<property>
   <name>fs.default.name</name>
   <value>hdfs://192.168.1.2:9000/</value>
</property>

在core-site.xml中包含fs.defaultFS / fs.default.name以允许dfs命令而不在命令中提供完整的站点名称。运行 hdfs dfs -ls / 而不是 hdfs dfs -ls hdfs:// hdfs /

这用于指定默认文件系统,默认为本地文件系统,这就是为什么需要将其设置为HDFS地址。这对于客户端配置也很重要,因此您的本地配置文件应包含此元素。

以上@Shashank解释说非常合适:

HDFS://192.168.1.2:9000 /。这里9000表示数据节点将心跳发送到namenode的端口。完整地址是转换为主机名的计算机名称。

谢谢,

Ankur Singh

答案 1 :(得分:5)

<name>fs.default.name</name>

这里fs表示文件系统,default.name表示namenode

<value>hdfs://192.168.1.2:9000/</value>

这里9000表示datanode将心跳发送到namenode的端口。完整地址是转换为主机名的计算机名称。

关于端口的重要注意事项是,您可以将任何大于1024的端口设置为比必须授予root权限的端口小。