一、通过日志排查问题:
1、首先我通过jpsall命令查看我的进程,发现namenode都没有开启
2、找到问题后首先进入我的日志目录里查看namenode.log
[root@node01 ~]# /opt/yjx/hadoop-3.3.4/logs/
[root@node01 ~]# ll
[root@node01 ~]# cat hadoop-root-namenode-node01.log
也就是选择查看下图日志的详细内容
3、查看日志中报错信息
得知是连接8485失败
通过查找资料得知:默认情况下namenode启动10s(maxRetries=10, sleepTime=1000)后journalnode还没有启动,就会报上述错误。
二、解决办法
(一)方法一:修改核心配置文件 core-site.xml
1、找到自己的core-site.xml文件
2、用编辑器模式打开文件,并添加如下代码
[root@node01 hadoop]# vi core-site.xml
<property>
<name>ipc.client.connect.max.retries</name>
<value>100</value>
</property>
<property>
<name>ipc.client.connect.retry.interval</name>
<value>10000</value>
</property>
3、重新启动
[root@node01 hadoop]# start-all.sh
jpsall命令查看namenode结果,两个均启动成功
(一)方法二:每个node节点都执行启动命令
方法一是修改配置文件,如果不想修改的话可以用第二种方法,那就是在你自己的需求节点上分别执行以下启动命令。(我这里是Linux三个node节点模拟了三台机器)。
以下命令三个节点都要运行
1、首先启动Zookeeper
[root@node01 ~]# zkServer.sh start
2、启动HDFS
[root@node01 hadoop]# start-dfs.sh
3、启动Yarn
[root@node01 hadoop]# start-yarn.sh
4、启动JobHistory
[root@node01 hadoop]# mapred --daemon start historyserver
5、关闭流程和启动顺序正好相反,并且把start改成stop即可