当键入start-dfs.sh时,我用两个节点hadoop01(master-10.0.0.151)和hadoop02(slaves-10.0.0.152)设置了一个hadoop集群,然后访问网站my_ip(上面只有10.0.0.151):50070。这是成功的。
但当我键入start-yarn.sh,然后访问我的网站ip:8088。它失败了。
my-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01:8088</value>
</property>
core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
</configuration>
与hadoop02(从属)相同的设置
我的hadoop01 hadoop-2.2.0/etc/hadoop/slaves集
hadoop01
hadoop02
键入start-dfs.sh和start-yarn.sh之后,我键入jps
hadoop01:
21594 NameNode
22345 NodeManager
22007 SecondaryNameNode
22171 ResourceManager
23147 Jps
21762 DataNode
hadoop02:
29861 NodeManager
30358 Jps
29665 DataNode
hadoop01中的my/etc/hosts:
localhost hadoop01
10.0.0.151 hadoop01
10.0.0.152 hadoop02
hadoop02中的my/etc/hosts:
localhost hadoop02
10.0.0.151 hadoop01
10.0.0.152 hadoop02
下面的链接是我上传到googledirve的yarn-nodemanager.loghttps://drive.google.com/file/d/0b7ncj_xjwsrqn1bzvtvyoegxd1e/edit?usp=sharing 但是如果我没有遗漏一些信息,yarn-nodemanager.log不会出现错误。。
请帮助我改善为什么我不能访问网站的问题 http://10.0.0.151:8088
**如果需要其他信息(如hdfs site.xml…等),请告诉我。我会更新。。
netstat -tunalp | grep LISTEN
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 17442/java
tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 17442/java
tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 17442/java
tcp 0 0 0.0.0.0:50090 0.0.0.0:* LISTEN 17693/java
tcp 0 0 10.0.0.151:8020 0.0.0.0:* LISTEN 17267/java
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 17267/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::13562 :::* LISTEN 21061/java
tcp6 0 0 10.0.0.151:8030 :::* LISTEN 20881/java
tcp6 0 0 10.0.0.151:8031 :::* LISTEN 20881/java
tcp6 0 0 10.0.0.151:8032 :::* LISTEN 20881/java
tcp6 0 0 10.0.0.151:8033 :::* LISTEN 20881/java
tcp6 0 0 :::33762 :::* LISTEN 21061/java
tcp6 0 0 :::8040 :::* LISTEN 21061/java
tcp6 0 0 :::8042 :::* LISTEN 21061/java
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 10.0.0.151:8088 :::* LISTEN 20881/java
禁用ipv6之后,我键入netstat-tunalp | grep listen
tcp 0 0 0.0.0.0:13562 0.0.0.0:* LISTEN 30608/java
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 29967/java
tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 29967/java
tcp 0 0 10.0.0.151:8030 0.0.0.0:* LISTEN 30424/java
tcp 0 0 10.0.0.151:8031 0.0.0.0:* LISTEN 30424/java
tcp 0 0 0.0.0.0:52992 0.0.0.0:* LISTEN 30608/java
tcp 0 0 10.0.0.151:8032 0.0.0.0:* LISTEN 30424/java
tcp 0 0 10.0.0.151:8033 0.0.0.0:* LISTEN 30424/java
tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 29967/java
tcp 0 0 0.0.0.0:8040 0.0.0.0:* LISTEN 30608/java
tcp 0 0 0.0.0.0:8042 0.0.0.0:* LISTEN 30608/java
tcp 0 0 0.0.0.0:50090 0.0.0.0:* LISTEN 30222/java
tcp 0 0 10.0.0.151:8020 0.0.0.0:* LISTEN 29790/java
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 29790/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 10.0.0.151:8088 0.0.0.0:* LISTEN 30424/java
tcp6 0 0 :::22 :::* LISTEN -
4条答案
按热度按时间xdnvmnnf1#
这里的问题是resource manager正在运行,但是resource manager占用的端口(80308031803280338088)使用tcp6而不是tcp(参见左侧部分)。您有两个选择,或者您可以在linux系统中禁用ipv6,然后重新启动服务。
或者
请尝试仅在主节点上修改yarn-site.xml,如下所示。不要修改从属节点中的yarn-site.xml:
指定hostname会导致端口以tcp6开头,即使不指定这些端口,也会采用默认值。请看一下以下默认端口
http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
修改yarn-site.xml后,重新启动yarn服务
bf1o4zei2#
原因是您应该将10.0.0.151:8088更改为0.0.0.0:8088。方法是打开yarn-site.xml,添加:
67up9zun3#
这与https://issues.apache.org/jira/browse/hadoop-605 ; hadoop配置脚本添加了
-Djava.net.preferIPv4Stack=true
强制ipv4绑定的标志,但配置脚本中缺少此标志。您可以通过在bin/yarn的末尾(exec之前)添加以下内容来解决此问题:yarn\u opts=“$yarn\u opts-djava.net.preferipv4stack=true”
uyhoqukh4#
对我来说,hadoop中的这一点:将多个ip地址绑定到群集名称节点:
在hdfs-site.xml中,将dfs.namenode.rpc-bind-host的值设置为0.0.0.0,hadoop将侦听私有和公共网络接口,允许远程访问和datanode访问。
在防火墙设置中打开8088也起了作用。