namenode是Hadoop集群HDFS的管理節點,管理着整個分布式文件系統的命名空間,以及文件與塊的映射關系等,在Hadoop集群中扮演着至關重要的作用。
我之前安裝的Hadoop集群中namenode和secondary namenode是在一個節點上安裝的,安裝的節點是在masters文件中配置的IP地址,然后在網上看了一些資料,希望將secondary namenode 分配到其他的集群節點上,做到更好的可維護性,也能夠減小對namenode的壓力。
網上的資料是說${HADOOP_HOME}/etc/hadoop/masters中配置的是secondary namenode運行的節點,並不是namenode的運行節點,因此在masters中將節點信息修改為希望將secondary namenode 運行的主機節點的IP地址,如圖:

然后需要在 ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml中配置secondary namenode 與 namenode運行的節點的信息,如圖:
<property>
<name>dfs.http.address</name>
<value>192.168.178.134:50070</value>
<description>
The address and the base port where the dfs namenode web ui will listen on.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.178.128:50090</value>
</property>
</configuration>
這兩個第一個配置的是namenode運行的節點信息,而第二個是secondary namenode運行的節點信息。由於我之前沒有配置這兩個,只是配置了一個namenode默認的地址信息,如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.178.134:9000</value>
</property>
然后無就把我這個刪除了,只保留了上面那兩個。然后進行集群的重新啟動,剛開始啟動是沒有什么問題的,但是過了一天進行集群的啟動就發現namenode無法啟動,datanode正常啟動。最后把我之前刪掉的這一段加上就好了。
fs.defaultFS這個屬性是HDFS的hadoop訪問目錄節點nameNode的地址和端口。
而上面的那個dfs.http.address是NameNode web管理端口以及namenode的地址信息。
