Hadoop集群能打开50070端口网页不能打开8088端口网页

最近开始搭建Hadoop集群,一开始很顺利,后面慢慢的一步步爬坑,记录下遇到的问题和解决方法。

在Hadoop 集群启动后,发现直接访问50070端口的网页没有问题,如图(博主这里还做了端口映射,所以看到的端口和实际端口不同):

但是直接访问8088端口就直接找不到 :

经过一步步的排查,记录下排查解决的方法:

中间排查步骤如下: 

1. 查看hadoop 启动的进程

因为8088 端口对应的是yarn服务,所以首先看下自己的Hadoop启动的进程有哪些

2. 检查yarn-site.xml配置文件

如果发现resourcemanager服务没有启动,则就代表yarn-site.xml配置文件没有配置好,那么需要检查下面几个地方:

下面解析下yarn-site.xml配置文件中重要查看的东西

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>namenode</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

1.1 第一部分配置的就resourcemanager的hostname,也就是你的namenode机器的Hostname,这里需要按照实际需求,根据你自己的namenode机器的hostname来进行配置,

1.2  第二部分看自己配置的yarn.resourcemanager.webapp.address 这一块,也就是配置的对应的网页地址,是否是使用的yarn.resourcemanager.hostname下的值加上端口号 8088 ,然后查看其余的8033等一系列端口是否都配置好了 

3. 检查机器之间是否都可以Ping通

然后配置文件没问题,发现resourcemanager 服务也跑起来了,那么开始检查下 各个datanode机器和namenode机器之间是否可以ping通,这里采用ping -c 3  hostname的方式来进行检查 

如果机器之间没有ping通,那么去修改对应的  /etc/hosts 文件

检查下ip 和hostname有没有搞错  ,然后就是防火墙有没有关闭

4.  查看对应端口的情况(一般都是这一步就可以发现问题)

我这里是在外网的情况下可以链接50070的端口,所以对比下50070和8088端口的情况

这一步发现8088端口前面的ip 居然是127.0.0.1,而我们的50070端口号居然是0.0.0.0,所以这一步问题基本就确立了

本人最终才去的方法就是修改namenode机器的/etc/hosts 文件 

更改成如下的形式 

也就是把localhost 与外网IP对应上

最后再次启动hadoop,查看8088端口,变成外网ip了,然后就可以正常访问了。

猜你喜欢

转载自blog.csdn.net/qq_27575895/article/details/89956773