我尝试在完全分布式模式下设置hadoop,在某种程度上我成功地做到了这一点。
但是,我对core-site.xml-->fs.defaultfs中的一个参数设置有些怀疑
在我的设置中,我有三个节点,如下所述:
node1--192.168.1.2-->配置为主节点(运行resourcemanager和namenode守护进程)
node2--192.168.1.3-->配置为从属(运行nodemanager和datanode守护进程)
node3--192.168.1.4-->配置为从属(运行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条答案
按热度按时间kqlmhetl1#
<name>fs.default.name</name>
.这里fs表示文件系统,default.name表示namenode
<value>hdfs://192.168.1.2:9000/</value>
.这里9000表示datanode将心跳发送到namenode的端口。而full address是转换为主机名的机器名。
关于端口需要注意的一点是,您可以将大于1024的任何端口设置为小于必须授予root权限的端口。
2o7dmzc52#
在本规范中:
在core-site.xml中包含fs.defaultfs/fs.default.name以允许dfs命令,而不在命令中提供完整的站点名称。运行hdfs dfs-ls/而不是hdfs dfs-lshdfs://hdfs/
这用于指定默认文件系统,并默认为本地文件系统,这就是为什么需要将其设置为hdfs地址的原因。这对于客户端配置也很重要,因此本地配置文件应该包含此元素。
上面@shashank解释得非常恰当:
hdfs://192.168.1.2:9000/. 这里9000表示datanode将心跳发送到namenode的端口。而full address是转换为主机名的机器名。
谢谢,
安库尔·辛格