Hadoop配置出错原因记录

1.背景

继上次配置好hadoop真分布式之后,这次启动后,调用hdfs命令总是报错,拒绝9000远程访问,但是端口还是好的(未占用)。搜了一圈网上的解决方案,一个个试过去都不行,最后导致namenode都起不来了,心态差点崩了,就差重新装一遍了。

2.排查问题

后来静下心来慢慢排查,去看logs文件夹下master的日志文件,才知道问题出在哪,namenode没有格式化

2021-01-21 14:09:36,639 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
java.io.IOException: NameNode is not formatted.

然后尝试格式化namenode,

hdfs namenode -format

报错,报错日志如下图,

3.解决方式

仔细看了下各个配置文件,发现core-site.xml在配置tmp路径时,多加了个file:,会不会是因为这个?(当时第一感觉就觉得这里不对,但是看网上教程好像都成功了?所以就照做了。现在看来,不能太过信任网上的所谓的最全、最详细教程啊!)

修改完后,再次格式化namenode文件夹,成功。
hdfs namenode -format

然后再启动服务,

开启hdfs服务

hduser@master:/usr/local/hadoop/etc/hadoop$ start-dfs.sh
Starting namenodes on [master]
master: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hduser-namenode-master.out
data2: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-data2.out
data3: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-data3.out
data1: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-data1.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hduser-secondarynamenode-master.out
hduser@master:/usr/local/hadoop/etc/hadoop$ jps
4375 Jps
4273 SecondaryNameNode
4046 NameNode

开启yarn服务

hduser@master:/usr/local/hadoop/etc/hadoop$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-hduser-resourcemanager-master.out
data2: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hduser-nodemanager-data2.out
data1: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hduser-nodemanager-data1.out
data3: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hduser-nodemanager-data3.out
hduser@master:/usr/local/hadoop/etc/hadoop$ jps
4507 Jps
4273 SecondaryNameNode
4428 ResourceManager
4046 NameNode

可以看到,这次服务都成功起来了。创建hdfs目录,并且查看,也成功。

hduser@master:/usr/local/hadoop/etc/hadoop$ hadoop fs -mkdir /test
hduser@master:/usr/local/hadoop/etc/hadoop$ hadoop fs -ls /
Found 1 items
drwxr-xr-x   - hduser supergroup          0 2021-01-21 14:23 /test

4.总结体会

1.总结

如果出现9000端口拒绝访问,一般是以下两者之一:
1.端口配置(端口冲突等)、防火墙
2.tmp文件夹配置(实践证明我的错误应是这种,由于没有指定tmp文件夹,导致每次都要重新格式化namenode,不然找不到tmp/dfs下的name和namesecondary就会导致服务起不来)

2.体会

还是得独立思考、研究,遇问题多看LOG,一昧找答案并不靠谱(还看到多个一模一样的答案,不知道他们是怎么都解决的)。

posted @ 2021-01-21 14:36  YHJIN  阅读(191)  评论(0编辑  收藏  举报