我正在尝试在完全分布式模式下设置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? p>
任何人都可以帮我理解这个吗?
答案 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权限的端口小。