- 背景:在Hadoop伪分布式部署中我们没有设置相关参数使得,NN和DN使用得是localhost启动得,而SNN是0.0.0.0启动得。在真正生产中,不可能使用IP来启动相关组件得,因为IP很有可能会变动,当ip变动的时候,可能你就得修改大量代码中得IP。因此,使用hostname来启动各组件是最稳妥得。
- 解决方案:
1.配置hostname
[root@hadoop001 ~]$ vim /etc/hosts
添加 192.168.0.3 hadoop001
source /etc/hosts
2.NN
[hadoop@hadoop001 ~]$ pwd
/home/hadoop
[hadoop@hadoop001 ~]$ vim etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop001:9000</value> <-- 修改hostname
</property>
</configuration>
3.DN
vim etc/hadoop/slaves
加入: hadooop001
[hadoop@hadoop001 hadoop]$ cat slaves
hadooop001
4.SNN
vim etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop001:50090</value> <-- 修改hostname
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop001:50091</value> <-- 修改hostname
</property>
</configuration>