使用yarn resource manager webapp时,我在查看包含作业历史记录的页面时遇到问题,url如下: http://node-0002.example.com:19888/jobhistory/job/job_1455545464819_0001
它显示了一个http错误,java异常如下:
java.lang.IllegalArgumentException: Does not contain a valid host:port authority: node-0001.example.com,node-0002.example.com:8088 (configuration property 'yarn.resourcemanager.webapp.address')
at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:213)
at org.apache.hadoop.yarn.conf.YarnConfiguration.getSocketAddr(YarnConfiguration.java:1782)
at org.apache.hadoop.yarn.webapp.util.WebAppUtils.getResolvedRMWebAppURLWithoutScheme(WebAppUtils.java:164)
at org.apache.hadoop.mapreduce.v2.app.webapp.AppController.<init>(AppController.java:63)```
主机名 node-0001.example.com,node-0002.example.com
显然是错的。
我有一个非常简单的ha-enabled配置 yarn-site.xml
:
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>my-cluster</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>node-0001.example.com,node-0002.example.com</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.node-0001.example.com</name>
<value>node-0001.example.com</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.node-0002.example.com</name>
<value>node-0002.example.com</value>
</property>
唯一不寻常的是给 rm-id
和主人一样。我也尝试过定义属性,比如 yarn.resourcemanager.address
以及 yarn.resourcemanager.webapp.address
,但那没用。
知道逗号分隔的列表而不是主机名是从哪里来的吗?我使用hadoop2.7.1。
暂无答案!
目前还没有任何答案,快来回答吧!