Hadoop Common
  1. Hadoop Common
  2. HADOOP-4618

Move http server from FSNamesystem into NameNode.

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.1.0
    • Fix Version/s: 0.20.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Incompatible change, Reviewed
    • Release Note:
      Hide
      Moved HTTP server from FSNameSystem to NameNode. Removed FSNamesystem.getNameNodeInfoPort(). Replaced FSNamesystem.getDFSNameNodeMachine() and FSNamesystem.getDFSNameNodePort() with new method FSNamesystem.getDFSNameNodeAddress(). Removed constructor NameNode(bindAddress, conf).
      Show
      Moved HTTP server from FSNameSystem to NameNode. Removed FSNamesystem.getNameNodeInfoPort(). Replaced FSNamesystem.getDFSNameNodeMachine() and FSNamesystem.getDFSNameNodePort() with new method FSNamesystem.getDFSNameNodeAddress(). Removed constructor NameNode(bindAddress, conf).

      Description

      NameNode is responsible now for starting its RPC server. The (web UI) http server is started inside FSNamesystem class.
      I think it should be the NameNode's responsibility to deal with all issues intended for exposing information it holds to the outside world. This should include the RCP server as well as the http server.
      And FSNamesystem class should be a logical container of internal namespace data-structures and in general should not be accessed directly from the outside.

      1. MoveHttpServer.patch
        24 kB
        Konstantin Shvachko
      2. MoveHttpServer.patch
        24 kB
        Konstantin Shvachko
      3. MoveHttpServer.patch
        24 kB
        Konstantin Shvachko

        Activity

        Owen O'Malley made changes -
        Component/s dfs [ 12310710 ]
        Nigel Daley made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Robert Chansler made changes -
        Release Note Changes to the public API:
        - FSNamesystem.getNameNodeInfoPort() is removed.
        - FSNamesystem.getDFSNameNodeMachine() and FSNamesystem.getDFSNameNodePort() replaced by FSNamesystem.getDFSNameNodeAddress()
        - Removed constructor NameNode(bindAddress, conf)
        Moved HTTP server from FSNameSystem to NameNode. Removed FSNamesystem.getNameNodeInfoPort(). Replaced FSNamesystem.getDFSNameNodeMachine() and FSNamesystem.getDFSNameNodePort() with new method FSNamesystem.getDFSNameNodeAddress(). Removed constructor NameNode(bindAddress, conf).
        Hadoop Flags [Reviewed, Incompatible change] [Incompatible change, Reviewed]
        Konstantin Shvachko made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Hadoop Flags [Incompatible change] [Incompatible change, Reviewed]
        Resolution Fixed [ 1 ]
        Release Note Changes to the public API:
        # FSNamesystem.getNameNodeInfoPort() is removed.
        # FSNamesystem.getDFSNameNodeMachine() and FSNamesystem.getDFSNameNodePort() replaced by FSNamesystem.getDFSNameNodeAddress()
        # Removed constructor NameNode(bindAddress, conf)
        Changes to the public API:
        - FSNamesystem.getNameNodeInfoPort() is removed.
        - FSNamesystem.getDFSNameNodeMachine() and FSNamesystem.getDFSNameNodePort() replaced by FSNamesystem.getDFSNameNodeAddress()
        - Removed constructor NameNode(bindAddress, conf)
        Konstantin Shvachko made changes -
        Release Note Changes to the public API:
        # FSNamesystem.getNameNodeInfoPort() is removed.
        # FSNamesystem.getDFSNameNodeMachine() and FSNamesystem.getDFSNameNodePort() replaced by FSNamesystem.getDFSNameNodeAddress()
        # Removed constructor NameNode(bindAddress, conf)
        Status Open [ 1 ] Patch Available [ 10002 ]
        Hadoop Flags [Incompatible change]
        Konstantin Shvachko made changes -
        Status Patch Available [ 10002 ] Open [ 1 ]
        Konstantin Shvachko made changes -
        Attachment MoveHttpServer.patch [ 12393663 ]
        Konstantin Shvachko made changes -
        Attachment MoveHttpServer.patch [ 12393549 ]
        Konstantin Shvachko made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        Konstantin Shvachko made changes -
        Attachment MoveHttpServer.patch [ 12393541 ]
        Konstantin Shvachko made changes -
        Field Original Value New Value
        Description NameNode is responsible now for starting its RPC server. The (web UI) http server is started inside FSNamesystem class.
        I think it should be the NameNode's responsibility to deal with all issues intended for exposing information it holds to the outside world. This should include the RCP server as well as the http server.
        And FSNamesystem class should be a logical container of internal namespace data-structures and in general should not be accessed directly from the outside.
        I came to this conclusion trying to implement a standby node. SNN and NN should be represented by the same class, since one can turn into another and vice versa during their life time. I realized that with current implementation the node startup logic will be spread between two classes ({{NameNode}} and {{FSNamesystem}}), which is inconvenient, complex, and error prone.
        NameNode is responsible now for starting its RPC server. The (web UI) http server is started inside FSNamesystem class.
        I think it should be the NameNode's responsibility to deal with all issues intended for exposing information it holds to the outside world. This should include the RCP server as well as the http server.
        And FSNamesystem class should be a logical container of internal namespace data-structures and in general should not be accessed directly from the outside.
        Issue Type Bug [ 1 ] Improvement [ 4 ]
        Component/s dfs [ 12310710 ]
        Konstantin Shvachko created issue -

          People

          • Assignee:
            Konstantin Shvachko
            Reporter:
            Konstantin Shvachko
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development