Hello folks,

I'm trying to use knox for various hadoop services, and I'm having some
trouble with the nodemanager links in YARNUI services. Specifically, the
nodemanager links require the host to be appended in the URI, something
like:
https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user?host=nm-host&port=8042

When I'm coming from the RM page, this link is rendered as an absolute one,
so the rewrite rule works fine and appends the host and port. However, when
I'm on the NM page itself, the URLs are not absolute, so a different
rewrite rule applies:
2017-06-27 05:10:28,138 DEBUG hadoop.gateway
(UrlRewriteProcessor.java:rewrite(164)) - Rewrote URL:
/node/containerlogs/container_e01_1498485266952_0006_01_000001/hiyer
qa3july/stderr/?start=-4096, direction: OUT via implicit rule:
YARNUI/yarn/outbound/node to URL:
https://host:8443/gateway/sandbox/yarn/node/containerlogs/container_e01_1498485266952_0006_01_000001/user/stderr

As you can see, this link does not contain the host in the query string, so
it does not work. This affects log links for running tasks, and links for
the nodemanager itself.

Any help on how I can work around this? One way I could think of is
appending the query string of the *current* page to the link, but I
couldn't see how to do that in a rewrite rule.

I could even look into fixing this in the hadoop code, but I couldn't find
an easy way to make the links absolute.

TIA,
Hariharan

Reply via email to