Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-12615 Router-based HDFS federation phase 2
  3. HDFS-13743

RBF: Router throws NullPointerException due to the invalid initialization of MountTableResolver

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.1.0, 3.0.3
    • 2.10.0, 3.2.0, 2.9.2, 3.0.4, 3.1.2
    • None
    • None
    • Reviewed

    Description

      When dfs.federation.router.default.nameserviceId isn't set and any other default name service isn't found, clients can't submit requests to the router because of NullPointerException.

      1. client side
        $ hadoop fs -ls hdfs://router:8888/
        ls: java.lang.NullPointerException
        
      1. Router log
        java.lang.NullPointerException
                at java.util.TreeMap.getEntry(TreeMap.java:347)
                at java.util.TreeMap.containsKey(TreeMap.java:232)
                at java.util.TreeSet.contains(TreeSet.java:234)
                at org.apache.hadoop.hdfs.server.federation.router.RouterRpcServer.getLocationsForPath(RouterRpcServer.java:2287)
                at org.apache.hadoop.hdfs.server.federation.router.RouterRpcServer.getLocationsForPath(RouterRpcServer.java:2239)
                at org.apache.hadoop.hdfs.server.federation.router.RouterRpcServer.getFileInfo(RouterRpcServer.java:1163)
                at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:966)
                at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
                at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:524)
                at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1025)
                at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:876)
                at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:822)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:422)
                at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1689)
                at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2682)
        

      The cause of this error is that the initialization of MountTableResolver doesn't work properly.

      Attachments

        1. HDFS-13743.1.patch
          6 kB
          Takanobu Asanuma
        2. HDFS-13743.2.patch
          6 kB
          Takanobu Asanuma
        3. HDFS-13743.3.patch
          6 kB
          Takanobu Asanuma
        4. HDFS-13743.4.patch
          6 kB
          Takanobu Asanuma
        5. HDFS-13743.5.patch
          6 kB
          Takanobu Asanuma

        Activity

          People

            tasanuma Takanobu Asanuma
            tasanuma Takanobu Asanuma
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: