[ 
https://issues.apache.org/jira/browse/HADOOP-1085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12483800
 ] 

Konstantin Shvachko commented on HADOOP-1085:
---------------------------------------------

= You say that dataNodeFirst cannot be supported, but your code first allows 
the parameter and second retains old processing of it.
Data-nodes will not find the name-node if somebody calls the public constructor 
with dataNodeFirst=true.
This is a potential bug. I think you should remove the parameter.

= Looking at the name-node code. You are passing the actual name-node ports by 
modifying the configuration parameter
of the name-node constructor, which makes it an output parameter. I see three 
problems with that approach:
a) it is not documented;
b) if somebody uses a defensive copy (as Nigel calls it) of the config 
parameter, meaning somebody who does not trust
the name-node to modify its config, there is no way to get the actual ports 
directly from the name-node instance.
c) in a real cluster if I configure fs.default.name = 0 and/or dfs.info.port = 
0 then data-nodes will never find the name-node.

I'd propose to create a separate constructor for the NameNode that mini cluster 
would use.
I propose not to modify the config inside NameNode but rather use
NameNode.getNameNodeAddress() and FSNamesystem.getNameNodeInfoPort()
inside the mini cluster


> Remove 'port rolling' from Mini{DFS|MR}Cluster
> ----------------------------------------------
>
>                 Key: HADOOP-1085
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1085
>             Project: Hadoop
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 0.12.0
>            Reporter: Arun C Murthy
>         Assigned To: Arun C Murthy
>             Fix For: 0.13.0
>
>         Attachments: HADOOP-1085_20070311_1.patch
>
>
> The rolling of ports in these 2 clusters lead to a lot of timing issues and 
> failed test cases; as witnessed in our patch process.
> The way around is to let the OS pick the port for the NameNode/JobTracker and 
> let the the DataNode/TaskTracker query them for the port to connect to and 
> then use that port.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to