[ 
https://issues.apache.org/jira/browse/YARN-2246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Lowe reassigned YARN-2246:
--------------------------------

    Assignee: Devaraj K  (was: Jason Lowe)

bq. Do you suggest that we should use the original tracking url directly 
instead of proxy url on the web UI?

Not sure if it's always OK to use the raw history tracking URL, as there might 
be some setups where the client can reach the RM but can't reach the history 
tracking URL directly.  However I think it's OK to always have the RM advertise 
the original proxy tracking URL (i.e.: http://<rmaddr>/proxy/<appid>) to 
clients through its UI.  The AM can redefine what that proxy redirects to, but 
the RM should never tack on paths to that proxy URI when advertising it.  In 
other words, clients visiting http://<rmaddr>/proxy<appid> will always reach 
the UI (either AM or history), and if the AM and history have properly mirrored 
UIs then it should be seamless to transition between the two when the AM 
unregisters and redefines the tracking URL to point to the history server.

bq. seamless view between the AM UI and history UI is not possible nowadays.

Correct, but that's MapReduce's fault and not YARN's.  If the RM handles the 
proxy properly then it should be possible for an app framework to implement a 
properly mirrored UI between the AM and the history server.

bq. In general, seamless view will still be difficult with the aforementioned 
solution between two tracking URLs. For example, tracking URL is 
http://t1:p1/a/b first, and I'm visiting the path at http://t1:p1/a/b/x/y/z. 
When the tracking URL becomes http://t2:p2/c/d/e, I refresh the package and am 
redirected http://t2:p2/c/d/e/a/b/x/y/z. Without mapping between original 
tracking url and proxy url, we don't know /a/b is part of tracking url base, 
and it shouldn't be carried on.

Not sure I'm following the example because there's no proxy URLs in it.  The 
client should always be using the proxy URL for this discussion.  If I follow 
the example correctly, the original tracking URL is http://t1:p1/a/b, and the 
proxy URL is rooted there (i.e.: proxy/<appid> -> t1:p1/a/b).  So I'm visiting 
proxy/<appid>/x/y/z and then the AM unregisters with a new tracking URL of 
t2:p2/c/d/e.  Then the proxy servlet should redirect that same 
proxy/<appid>/x/y/z request to t2:p2/c/d/e/x/y/z which seems correct to me.  
It's just taking the path underneath the proxy address (i.e.: everything after 
proxy/<appid>) and tacking it on the specified tracking URL.  The same subpath 
is seen by both the AM and history URIs, assuming a/b is the root of the AM UI 
and c/d/e is the root of the history UI (for that app).   So it seems this 
works as I would expect.  Am I missing something?

bq. I have updated the generateProxyUriWithScheme() in the latest patch.

Thanks for updating the patch, Devaraj.  I think it looks good, although it 
would be nice to have some regression tests to verify that if the app changes 
the tracking URL that the proxy URL doesn't update like it used to.

> Job History Link in RM UI is redirecting to the URL which contains Job Id 
> twice
> -------------------------------------------------------------------------------
>
>                 Key: YARN-2246
>                 URL: https://issues.apache.org/jira/browse/YARN-2246
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: webapp
>            Reporter: Devaraj K
>            Assignee: Devaraj K
>             Fix For: 2.7.0
>
>         Attachments: MAPREDUCE-4064-1.patch, MAPREDUCE-4064.patch, 
> YARN-2246-3.patch, YARN-2246.2.patch, YARN-2246.patch
>
>
> {code:xml}
> http://xx.x.x.x:19888/jobhistory/job/job_1332435449546_0001/jobhistory/job/job_1332435449546_0001
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to