Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-1875

MiniDFSCluster hard-codes dfs.datanode.address to localhost

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.22.0
    • Fix Version/s: 0.23.0
    • Component/s: test
    • Labels:
      None

      Description

      When creating RPC addresses that represent the communication sockets for each simulated DataNode, the MiniDFSCluster class hard-codes the address of the dfs.datanode.address port to be "127.0.0.1:0"

      The DataNodeCluster test tool uses the MiniDFSCluster class to create a selected number of simulated datanodes on a single host. In the DataNodeCluster setup, the NameNode is not simulated but is started as a separate daemon.

      The problem is that if the write requrests into the simulated datanodes are originated on a host that is not the same host running the simulated datanodes, the connections are refused. This is because the RPC sockets that are started by MiniDFSCluster are for "localhost" (127.0.0.1) and are not accessible from outside that same machine.

      It is proposed that the MiniDFSCluster.setupDatanodeAddress() method be overloaded in order to accommodate an environment where the NameNode is on one host, the client is on another host, and the simulated DataNodes are on yet another host (or even multiple hosts simulating multiple DataNodes each).

      The overloaded API would add a parameter that would be used as the basis for creating the RPS sockets. By default, it would remain 127.0.0.1

      1. HDFS-1875.patch
        11 kB
        Eric Payne
      2. HDFS-1875.patch
        9 kB
        Eric Payne

        Activity

          People

          • Assignee:
            Eric Payne
            Reporter:
            Eric Payne
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development