记录hadoop namenode死活起不来,各种方法试遍了,简直要奔溃,
MD!!! 生气!!
言归正传 说问题
配置 etc/hadoop/hdfs-site.xml
<configuration>
<!-- nn web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>node2:9870</value>
</property>
<!-- 2nn web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:9868</value>
</property>
</configuration>
配置etc/hadoop/core-site.xml
<configuration>
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node2:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/soft/hadoop/hadoop/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为hadoop -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
</configuration>
namenode初始化。
hdfs namenode -format
启动。
sbin/start-dfs.sh
在node2服务器 jps 查看 : datanode 已经起来了。但是没有namenode
查看logs下面的namenode.log
显示namenode端口被占用
namenode Port in use: node2:9870
这时候去排查9870端口占用情况
发现并没有
……
再次格式化NameNode,
这时会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。
这个问题卡了我三天
解决办法
修改namenode所在服务器的hosts 我的是在node2上
vim /etc/hosts
把hosts 里面的 node2公网ip 换成私网ip
换完后。启动
sbin/start-dfs.sh
问题解决