配置好Hadoop的Namenode节点、secondarynode节点和datanode节点之后,配置hadoop /etc目录下的mapred-site.xml、yarn-site.xml文件,配置完成之后,启动resourcemanager、nodemanager。其中,yarn-site.xml配置如下:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
localhost
jps查看可以看到都启动成功。但是windows下输入下面的访问地址,提示访问超时页面找不到。
http://192.168.175.123:8088
其中192.168.175.123为虚拟机地址,8088为yarn管理页面的默认端口
0. 查看8088端口是否开启。如下,可以看到8088端口已经开启
查看某个端口进程的命令:lsof -i:端口号,查看8088端口是否为JAVA程序开启。如果没有显示8088端口消息,说明resourcemanager没有开启成功,查询hadoop程序下的logs/yarn-root-resourcemanager-fang16.hadoop.com.log日志确定启动不起来原因。
知识补充:lsof的选项:-i<条件> 列出符合指定条件的进程。(4、6、协议、:端口、 @ip ),4代表IPv4,6代表IPv6。
[hadoop@localhost hadoop-2.8.5]$ lsof -i:8088
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 3303 hadoop 234u IPv6 45723 0t0 TCP hadoop.fang.com:radan-http (LISTEN)
1、Windows下的浏览器访问提示连接超时。问题出在需要关闭虚拟机的防火墙。不同版本的linux关闭方法不同。Centos 7 关闭方法如下:设置成永久关闭即可。关闭防火墙之后,windows下的浏览器再次访问yarn,提示connection refused(服务器拒绝了连接),而不再是连接超时。
systemctl stop firewalld
systemctl disable firewalld
systemctl start firewalld
systemctl enable firewalld
systemctl status firewalld
知识补充:
查看和修改Linux防火墙存在以下两种方式:
一、service方式
查看防火墙状态:[root@centos6 ~]# service iptables status
开启防火墙:[root@centos6 ~]# service iptables start
关闭防火墙:[root@centos6 ~]# service iptables stop
二、iptables方式
先进入init.d目录,命令如下:[root@centos6 ~]# cd /etc/init.d/,然后
查看防火墙状态:[root@centos6 init.d]# /etc/init.d/iptables status
暂时关闭防火墙:[root@centos6 init.d]# /etc/init.d/iptables stop
重启iptables:[root@centos6 init.d]# /etc/init.d/iptables restart
2.netstat -nltp查看端口启用情况,如下图,可以看到8088端口(yarn界面)和50070端口(hadoop界面)都是挂载127.0.0.1的ip下面。因此,只能够本机访问此端口。所以问题就出在这里。需要将端口挂载在外界可以访问到的虚拟机ip下面才可以。首先修改yarn-site.xml的hostname参数配置,修改成自己的一个域名,或者直接写成虚拟机IP。我的配置成了hadoop.fang.com.如果配置成域名的话,就需要在/etc/hosts加上域名解析。
解释:外界可以访问到的虚拟机IP
在宿主机上ping此虚拟机IP可以ping通,那么就把此IP配置在yarn-site.xml的hostname属性上。比如:如果虚拟机使用的是NAT和Host-Only混合方式联网,那么NAT模式和Host-Only会各自分配一个IP,宿主机ping NAT的ip显然ping不通,但是宿主机pingHost-Only的IP是可以ping通的,那么此时hostname的属性值配置成Host-Only的IP才行。访问时,http://IP:8088。IP为Host-Only的IP。
[root@venn05 hadoop]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:35115 0.0.0.0:* LISTEN 9344/java
tcp 0 0 0.0.0.0:9868 0.0.0.0:* LISTEN 8816/java
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 127.0.0.1:8020 0.0.0.0:* LISTEN 8467/java
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1203/dnsmasq
tcp 0 0 127.0.0.1:50070 0.0.0.0:* LISTEN 8467/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 972/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 971/cupsd
tcp 0 0 127.0.0.1:8088 0.0.0.0:* LISTEN 9048/java
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1086/master
tcp 0 0 0.0.0.0:13562 0.0.0.0:* LISTEN 9344/java
tcp 0 0 127.0.0.1:8030 0.0.0.0:* LISTEN 9048/java
tcp 0 0 127.0.0.1:8031 0.0.0.0:* LISTEN 9048/java
tcp 0 0 127.0.0.1:8032 0.0.0.0:* LISTEN 9048/java
tcp 0 0 127.0.0.1:8033 0.0.0.0:* LISTEN 9048/java
tcp 0 0 0.0.0.0:8040 0.0.0.0:* LISTEN 9344/java
tcp 0 0 0.0.0.0:8042 0.0.0.0:* LISTEN 9344/java
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 972/sshd
tcp6 0 0 ::1:631 :::* LISTEN 971/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1086/master
3.如果还没有解决,可能是因为虚拟机选择的网络连接方式问题。比如如果虚拟机选择NAT模式,那么本机是没办法ping通虚拟机的。此时需要配置端口映射。比如我使用的VirtualBox虚拟软件。端口映射如下下图所示;如果使用的是NAT和Host-Only混合模式,那么访问时IP:port的IP应该为Host-Only的IP地址,即能够ping通虚拟机的IP地址
虚拟机网络连接方式参考资料:https://blog.csdn.net/qq_22310551/article/details/84988063
ifconfig查看虚拟机ip地址
然后本机cmd命令窗口模式下,ping ip。如果ping不通,那么直接
http://虚拟机ip:8088是不可能访问成功的。
如果是NAT模式,设置端口映射后,http://127.0.0.1:8088即可访问虚拟机8088端口。
注:netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-l或--listening:显示监控中的服务器的Socket;
-t或--tcp:显示TCP传输协议的连线状况;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
yarn-site.xml配置如下:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop.fang.com
/etc/hosts配置如下。一定将域名配置成虚拟机本IP地址才可以。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.175.123 hadoop.fang.com
注:curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。通过-I
或者-head
可以只打印出HTTP头部信息:即命令 curl -I http地址
[hadoop@localhost hadoop-2.8.5]$ curl -I http://192.168.175.123:50070
HTTP/1.1 200 OK
Cache-Control: no-cache
Expires: Thu, 27 Sep 2018 05:49:48 GMT
Date: Thu, 27 Sep 2018 05:49:48 GMT
Pragma: no-cache
Expires: Thu, 27 Sep 2018 05:49:48 GMT
Date: Thu, 27 Sep 2018 05:49:48 GMT
Pragma: no-cache
Content-Type: text/html; charset=utf-8
X-FRAME-OPTIONS: SAMEORIGIN
Expires: Thu, 27 Sep 2018 05:49:48 GMT
Date: Thu, 27 Sep 2018 05:49:48 GMT
Pragma: no-cache
Expires: Thu, 27 Sep 2018 05:49:48 GMT
Date: Thu, 27 Sep 2018 05:49:48 GMT
Pragma: no-cache
X-FRAME-OPTIONS: SAMEORIGIN
Last-Modified: Mon, 10 Sep 2018 03:58:15 GMT
Content-Length: 1079
Accept-Ranges: bytes