Uploaded image for project: 'Apache Knox'
  1. Apache Knox
  2. KNOX-1023

nodemanager log links for a running job not working through YARNUI

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 0.13.0
    • None
    • None
    • None

    Description

      When nodemanager links are accessed through YARNUI service, it requires the host and port 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(the URL's on NM page are relative), so a different rewrite rule applies:

      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=nm-host&port=8042 at the end of query string, so it does not work. This affects log links for running tasks, and links for the nodemanager itself.

      So, the links on NM page of type

      href=/syslog
      

      gets transformed to

      https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog
      
      

      whereas it should have been transformed to

      https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog?host=nm-host&port=8042
      

      One possible solution 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.

      Also, if you can provide some code pointers I may look into it.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            vaibhavb Vaibhav Beriwala
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment