Andrew Robertson created YARN-4112:
--------------------------------------
Summary: YARN HA secondary-RM/NM redirect not parseable by
Ambari/curl in a Kerberoized deployment
Key: YARN-4112
URL: https://issues.apache.org/jira/browse/YARN-4112
Project: Hadoop YARN
Issue Type: Bug
Components: nodemanager, resourcemanager
Affects Versions: 2.6.0
Reporter: Andrew Robertson
Priority: Minor
The secondary-RM-to-primary-RM (and NM) redirect issued by YARN in a
kerberoized cluster is not a proper (http-location-301-style) redirect, thus
Ambari - which uses curl - does not find the "right" node. This, in turn, is
triggering alerts in Ambari.
A network dump of the ambari poll against the secondary RM looks like:
Request:
"""
GET /jmx?qry=Hadoop:service=ResourceManager,name=RMNMInfo HTTP/1.1
...
"""
Response:
"""
HTTP/1.1 200 OK
...
Refresh: 3; url=http://{my-primary-rm}:8088/jmx
Content-Length: 106
Server: Jetty(6.1.26.hwx)
This is standby RM. Redirecting to the current active RM:
http://{my-primary-rm}:8088/jmx
"""
Comment from Jonathan Hurley [email protected] -
---
This is caused by how YARN does HA mode. With two YARN RMs, the standby RM
returns a 200 response with a JavaScript redirect instead of an 3xx
redirection. When not using Kerberos, Ambari should be able to parse the
headers and follow the JS-based redirect. However, on a Kerberized cluster, we
use curl which cannot do this. Therefore, requests against the secondary RM
will return an UNKNOWN response since it did get a 200. I think a few things
can be improved here:
1) There should be a ticket filed for YARN to have their HA mode use a proper
redirect
2) Ambari might not want to produce an UNKNOWN response here since it gives a
false feeling that something went wrong.
---
I've also filed AMBARI-12995 with the ambari team.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)