You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Junping Du (JIRA)" <ji...@apache.org> on 2012/06/04 07:10:22 UTC

[jira] [Created] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Junping Du created HADOOP-8469:
----------------------------------

             Summary: Make NetworkTopology class pluggable and support user specified topology class
                 Key: HADOOP-8469
                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
             Project: Hadoop Common
          Issue Type: Sub-task
    Affects Versions: 2.0.0-alpha, 1.0.0
            Reporter: Junping Du
            Assignee: Junping Du


The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
The proposed changes in NetworkTopology listed below
1. Some fields were changes from private to protected
2. Added some protected methods so that sub classes could override behavior
3. Added a new method,isNodeGroupAware,to NetworkTopology
4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289255#comment-13289255 ] 

Junping Du commented on HADOOP-8469:
------------------------------------

Hi Nicholas,
   That's great comments. Changing InnerNode to a static nested class eliminate unnecessary code footprint much. I will also follow this in other JIRA patches. Also, all tabs should be removed and fix the margin of line.

Thanks,

Junping
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290735#comment-13290735 ] 

Hadoop QA commented on HADOOP-8469:
-----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12531204/HADOOP-8469-NetworkTopology-pluggable-v5.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    +1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    +1 core tests.  The patch passed unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs.

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1090//testReport/
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1090//console

This message is automatically generated.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment: HADOOP-8469-NetworkTopology-pluggable.patch
    
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291453#comment-13291453 ] 

Junping Du commented on HADOOP-8469:
------------------------------------

Great. After this patch go to trunk, then we can go ahead to make patch available for HADOOP-8470 which depends on this. Thanks! Nicholas.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288611#comment-13288611 ] 

Hadoop QA commented on HADOOP-8469:
-----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530784/HADOOP-8468-total-v3.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 9 new or modified test files.

    -1 javac.  The applied patch generated 1997 javac compiler warnings (more than the trunk's current 1996 warnings).

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    -1 findbugs.  The patch appears to introduce 1 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    -1 core tests.  The patch failed these unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager:

                  org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.TestCapacityScheduler

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1080//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HADOOP-Build/1080//artifact/trunk/patchprocess/newPatchFindbugsWarningshadoop-mapreduce-client-app.html
Javac warnings: https://builds.apache.org/job/PreCommit-HADOOP-Build/1080//artifact/trunk/trunk/patchprocess/diffJavacWarnings.txt
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1080//console

This message is automatically generated.
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Target Version/s: 2.0.3-alpha
    
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-8469-NetworkTopology-pluggable.patch, HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Robert Joseph Evans (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288641#comment-13288641 ] 

Robert Joseph Evans commented on HADOOP-8469:
---------------------------------------------

Sorry I just saw HADOOP-8468 I will transfer my comments there, and update them.
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288483#comment-13288483 ] 

Hadoop QA commented on HADOOP-8469:
-----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530751/HADOOP-8468-total-v2.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 9 new or modified test files.

    -1 javac.  The applied patch generated 1997 javac compiler warnings (more than the trunk's current 1996 warnings).

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    -1 findbugs.  The patch appears to introduce 2 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    -1 core tests.  The patch failed these unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager:

                  org.apache.hadoop.yarn.server.resourcemanager.security.TestDelegationTokenRenewer
                  org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.TestCapacityScheduler

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1079//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HADOOP-Build/1079//artifact/trunk/patchprocess/newPatchFindbugsWarningshadoop-yarn-server-resourcemanager.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HADOOP-Build/1079//artifact/trunk/patchprocess/newPatchFindbugsWarningshadoop-mapreduce-client-app.html
Javac warnings: https://builds.apache.org/job/PreCommit-HADOOP-Build/1079//artifact/trunk/trunk/patchprocess/diffJavacWarnings.txt
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1079//console

This message is automatically generated.
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8468-total-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291515#comment-13291515 ] 

Hudson commented on HADOOP-8469:
--------------------------------

Integrated in Hadoop-Hdfs-trunk-Commit #2408 (See [https://builds.apache.org/job/Hadoop-Hdfs-trunk-Commit/2408/])
    HADOOP-8469. Make NetworkTopology class pluggable.  Contributed by Junping Du (Revision 1347867)

     Result = SUCCESS
szetszwo : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1347867
Files : 
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java

                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291514#comment-13291514 ] 

Hudson commented on HADOOP-8469:
--------------------------------

Integrated in Hadoop-Common-trunk-Commit #2335 (See [https://builds.apache.org/job/Hadoop-Common-trunk-Commit/2335/])
    HADOOP-8469. Make NetworkTopology class pluggable.  Contributed by Junping Du (Revision 1347867)

     Result = SUCCESS
szetszwo : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1347867
Files : 
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java

                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Robert Joseph Evans (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288639#comment-13288639 ] 

Robert Joseph Evans commented on HADOOP-8469:
---------------------------------------------

Junping Du,

I have been looking at some of your patches, but there is a lot here to go through and it is likely to take some time.  The first thing I would like to see happen though is to have a Rollup Jira filed to track the entire change that you are trying to make.  It looks like you are trying to add in "NodeGroup" support across all of Hadoop.  Within that ticket it would really be nice if you could explain what you are trying to do, and why you are trying to do it.  What benefit is this large set of changes going to give the community.  If you have a design document that would be good if not just a quick overview of the changes being made.  This is mostly so I, and other community members can grok the big picture of what you are trying to do here, so we can evaluate it at a high level, before getting into the line by line changes that you are making.

The second thing I would like to see happen is to have you move your JIRAs to the appropriate project.  HDFS JIRAs should be moved out of HADOOP and into HDFS, Mapreduce should go to MAPREDUCE, and only the ones that stay in HADOOP should be for code that goes under the hadoop-common-project directory.

The third thing I would like to see is to then have you link up all of the JIRAs so that we can see which JIRAs have dependencies on which other ones.  This includes linking up all of your JIRAs to the Rollup JIRA so the entire change can be tracked.

Be aware that this large of a set of changes is going to take a while for us to go through.

Thanks  
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289283#comment-13289283 ] 

Hadoop QA commented on HADOOP-8469:
-----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530920/HADOOP-8469-NetworkTopology-pluggable-v3.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    +1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    +1 core tests.  The patch passed unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs.

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1084//testReport/
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1084//console

This message is automatically generated.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Tsz Wo (Nicholas), SZE (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290346#comment-13290346 ] 

Tsz Wo (Nicholas), SZE commented on HADOOP-8469:
------------------------------------------------

Patch looks good.  Some minor comments:

- Could you change children to List<Node>?
{code}
+    protected ArrayList<Node> children=new ArrayList<Node>();
{code}

- Please change the following comment to javadoc
{code}
+  // Return false directly as not aware of NodeGroup, to be override in sub-class
{code}
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291769#comment-13291769 ] 

Hudson commented on HADOOP-8469:
--------------------------------

Integrated in Hadoop-Mapreduce-trunk #1104 (See [https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1104/])
    HADOOP-8469. Make NetworkTopology class pluggable.  Contributed by Junping Du (Revision 1347867)

     Result = FAILURE
szetszwo : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1347867
Files : 
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java

                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Summary: Make NetworkTopology class pluggable  (was: Make NetworkTopology class pluggable and support user specified topology class)
    
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment: HADOOP-8468-total-v2.patch
    
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8468-total-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291532#comment-13291532 ] 

Hudson commented on HADOOP-8469:
--------------------------------

Integrated in Hadoop-Mapreduce-trunk-Commit #2354 (See [https://builds.apache.org/job/Hadoop-Mapreduce-trunk-Commit/2354/])
    HADOOP-8469. Make NetworkTopology class pluggable.  Contributed by Junping Du (Revision 1347867)

     Result = SUCCESS
szetszwo : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1347867
Files : 
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java

                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment: HADOOP-8469-NetworkTopology-pluggable-v4.patch
    
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment:     (was: HADOOP-8468-total-v2.patch)
    
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291499#comment-13291499 ] 

Hadoop QA commented on HADOOP-8469:
-----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12531204/HADOOP-8469-NetworkTopology-pluggable-v5.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    +1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    -1 core tests.  The patch failed these unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs:

                  org.apache.hadoop.fs.viewfs.TestViewFsTrash

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1097//testReport/
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1097//console

This message is automatically generated.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment: HADOOP-8469-NetworkTopology-pluggable-v5.patch

Update patch slightly as Nicholas' suggestion.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288420#comment-13288420 ] 

Hadoop QA commented on HADOOP-8469:
-----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530734/HADOOP-8469-NetworkTopology-pluggable-v2.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    +1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    +1 core tests.  The patch passed unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs.

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1075//testReport/
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1075//console

This message is automatically generated.
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289926#comment-13289926 ] 

Junping Du commented on HADOOP-8469:
------------------------------------

Hi Nicholas, Good comments! NET_TOPOLOGY_WITH_NODEGROUP is only for other patch in YARN which is used to create some implementation class related to task scheduling like: SchedulerNode, ScheduledRequests, etc that take information of "nodegroup". Yes. this should be removed in this patch. Will address all comments soon.

                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Tsz Wo (Nicholas), SZE (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291505#comment-13291505 ] 

Tsz Wo (Nicholas), SZE commented on HADOOP-8469:
------------------------------------------------

The patch is mainly a code refactoring with a slightly code change.  I believe the existing tests already covering it.  The failure of TestViewFsTrash is of course not related.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288766#comment-13288766 ] 

Junping Du commented on HADOOP-8469:
------------------------------------

OK. Separate this jira into two part:
1. Common part: Make NetworkTopology class pluggable
2. HDFS part: Support user specified topology class
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment: HADOOP-8469-NetworkTopology-pluggable-v2.patch

Update to fix findbug issue. This "pluggable" patch is not include any new unit test but run against current test. The new unit tests are added in plugin patch.  
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Tsz Wo (Nicholas), SZE (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tsz Wo (Nicholas), SZE updated HADOOP-8469:
-------------------------------------------

    Hadoop Flags: Reviewed

+1 the patch looks great!

There were some failures in the previous Jenkins build due to HADOOP-8368.  HADOOP-8368 was reverted.  I have restarted another build for this.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Tsz Wo (Nicholas), SZE (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tsz Wo (Nicholas), SZE updated HADOOP-8469:
-------------------------------------------

       Resolution: Fixed
    Fix Version/s: 3.0.0
           Status: Resolved  (was: Patch Available)

I have committed this.  Thanks, Junping!
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291719#comment-13291719 ] 

Hudson commented on HADOOP-8469:
--------------------------------

Integrated in Hadoop-Hdfs-trunk #1071 (See [https://builds.apache.org/job/Hadoop-Hdfs-trunk/1071/])
    HADOOP-8469. Make NetworkTopology class pluggable.  Contributed by Junping Du (Revision 1347867)

     Result = SUCCESS
szetszwo : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1347867
Files : 
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeManager.java

                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable-v5.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Status: Patch Available  (was: Open)

This patch will change the interface of NetworkTopology which is marked as unstable. Should we mark this patch with "Incompatible change"? Rarely seeing user to extend this class (in fact, it is hard to extend without any change). Isn't it?
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0-alpha, 1.0.0
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment:     (was: HADOOP-8468-total-v3.patch)
    
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment: HADOOP-8468-total-v3.patch
    
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8468-total-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable and support user specified topology class

Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288388#comment-13288388 ] 

Hadoop QA commented on HADOOP-8469:
-----------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12530731/HADOOP-8469-NetworkTopology-pluggable.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    -1 tests included.  The patch doesn't appear to include any new or modified tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    -1 findbugs.  The patch appears to introduce 1 new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    +1 core tests.  The patch passed unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs.

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1074//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HADOOP-Build/1074//artifact/trunk/patchprocess/newPatchFindbugsWarningshadoop-hdfs.html
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1074//console

This message is automatically generated.
                
> Make NetworkTopology class pluggable and support user specified topology class
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Tsz Wo (Nicholas), SZE (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289713#comment-13289713 ] 

Tsz Wo (Nicholas), SZE commented on HADOOP-8469:
------------------------------------------------

Hi Junping, thanks a lot for the update.  It is much easier to see what have been changed in InnerNode.  Some comments:

- Let's rename net.topology.class.name to net.topology.impl (which is consistent to other keys like fs.file.impl.)

- NET_TOPOLOGY_WITH_NODEGROUP is not used.  What is it for?

- Could you change InnerNode.children to List<Node>?  This is a problem on the existing code.

- Why doGetRack(loc) is needed instead of letting subclasses overriding getRack(loc) directly?

- Let's rename compareParents(..) to isSameParent(..).  You may want to change the javadoc to "@return true if their parents are equal, ..."

- Please move isOnSameNodeGroup(..) to right after isNodeGroupAware(..) and change the comment above isOnSameNodeGroup(..) to javadoc.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Junping Du updated HADOOP-8469:
-------------------------------

    Attachment: HADOOP-8469-NetworkTopology-pluggable-v3.patch
    
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Tsz Wo (Nicholas), SZE (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288797#comment-13288797 ] 

Tsz Wo (Nicholas), SZE commented on HADOOP-8469:
------------------------------------------------

Hi Junping,

Thanks for posting a patch.  Some quick comments:

- The patch moves InnerNode as a standalone class.  Could you change NetworkTopology.InnerNode to static and package private instead?

- There are a few tabs in the patch. (we do not use tabs in Hadoop)

- Some lines, mostly javadoc or comments, are very long.  Could you change them to <= 80 characters?
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HADOOP-8469) Make NetworkTopology class pluggable

Posted by "Junping Du (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-8469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289940#comment-13289940 ] 

Junping Du commented on HADOOP-8469:
------------------------------------

doGetRack(loc) is not necessary now as doing some refactor work before. 
Now, new patch (v4) address all Nicholas' review comments so far.
                
> Make NetworkTopology class pluggable
> ------------------------------------
>
>                 Key: HADOOP-8469
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8469
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 1.0.0, 2.0.0-alpha
>            Reporter: Junping Du
>            Assignee: Junping Du
>         Attachments: HADOOP-8469-NetworkTopology-pluggable-v2.patch, HADOOP-8469-NetworkTopology-pluggable-v3.patch, HADOOP-8469-NetworkTopology-pluggable-v4.patch, HADOOP-8469-NetworkTopology-pluggable.patch
>
>
> The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer.
> To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable.
> The proposed changes in NetworkTopology listed below
> 1. Some fields were changes from private to protected
> 2. Added some protected methods so that sub classes could override behavior
> 3. Added a new method,isNodeGroupAware,to NetworkTopology
> 4. The inner class InnerNode was made a package protected class to it would be easier to subclass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira