提前感谢的帮助
我正在运行以下版本:
Hadoop 2.2动物园管理员3.4.5Hbase 0.96蜂巢0.12
当我转到http://:50070时,我能够正确地看到2个节点正在运行。
问题是,当我转到http://:8088时,它显示0个节点正在运行。
我知道:8088反映了资源管理器,并显示了正在运行的节点管理器的数量。守护进程都启动了,但节点管理器似乎没有连接到资源管理器。
这是日志文件:
2013-12-16 20:55:48,648 INFO org.apache.hadoop.yarn.client.RMProxy: Connecting to ResourceManager at /127.0.0.1:8031
2013-12-16 20:55:49,755 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:50,756 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:51,757 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:52,758 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 3 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:53,759 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:54,760 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
我已经检查过了,端口8031是打开的。
编辑:
对于将来看到这个的人,我需要编辑我的yarn-site.xml,使其看起来如下:
<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.scheduler.address</name>
<value>master-1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master-1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master-1:8088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master-1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master-1:8033</value>
</property>
我遇到了一个非常类似的问题,只需指定ResourceManager主机名就可以解决,无需为每个服务拼写出确切的地址。
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master-1</value>
</property>
您需要指定
主机名:端口
是的,它必须在所有节点上设置,而不仅仅是ResourceManager节点(只需将相同的hadoop的conf-dir复制到所有节点即可)。如果您需要一些最低限度的工作配置才能开始,请查看此处:toster.ru/q/57046#answer_208326
rsync
或scp
命令可用于将配置文件从主节点复制到从属节点:
for host in $HADOOP_CONF_DIR/slaves; do
rsync -rv $HADOOP_CONF_DIR/* $host:$HADOOP_CONF_DIR/
done
注意,这里我假设所有节点都有相同的hadoop目录布局。
我遇到了一个症状非常相似的问题,尽管是节点管理器没有连接到资源管理器。问题是,在yarn-site.xml中有(或可能有)一个名为"yarn.nodemanager.hostname"的属性。该设置被意外地填充了HDFS的主机名"namenode",但它应该包含每个节点"nodemanager"的yarn的主机名。根据为其他属性输入的内容,这会导致各种错误,如"重试连接"、"拒绝连接"或资源分配错误。将其设置为"0.0.0.0"(默认值)解决了问题。
我也遇到了同样的问题,但在我的案例中,资源管理器中只列出了一个节点manage。我把下面的属性放在yarn-site.xml中,可以看到RM中列出的节点。
<property>
<name>yarn.resourcemanager.hostname</name>
<value><master-1></value>
</property>
- 检查是否启用YARN HA
- 如果启用了它,则对于yarn-site.xmlyarn.resourcemanager.ha.rm-ids(例如rm1、rm2)运行resourcemanager服务