-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/29276/
-----------------------------------------------------------

Review request for Ambari, Jaimin Jetly, John Speidel, Robert Levas, and Yusaku 
Sako.


Bugs: AMBARI-8771
    https://issues.apache.org/jira/browse/AMBARI-8771


Repository: ambari


Description
-------

This patch resolves AMBARI-8771.

In previous releases of Ambari Blueprints, it was not possible to deploy an 
HDFS NameNode HA cluster using a Blueprint.  The existing HA support in Ambari 
in the UI supported adding HA support to a running cluster, but Ambari did not 
support
 creating HA clusters from the initial deployment of the cluster.

This patch adds support for deploying HDFS NameNode HA clusters via the 
following changes:

  - Modifies the HDFS stack service scripts to handle the startup and
    configuration requirements of an initial HDFS HA install, including
    handling the startup of the active and standby nodes
  - Implements support for two new configuration properties in hadoop-env
    that allow the user to specify the initial states of the namenodes, by
    declaring the host name of the active and standby nodes.  These
    properties are used by the stack scripts in order to run the setup
    specific to each node type.  If these properties are not set by
    the user, the Blueprints processor will choose defaults for the
    active and stanbdy nodes in the HDFS cluster.
  - Updates the Blueprint configuration code to handle quorum journal URL
    properties, which use a slightly different syntax than other Hadoop
    configuration properties.
  - Updates the Blueprint validation code to support a NameNode HA deployment
    that does not include the SECONDARY_NAMENODE.  Currently, our stacks
    require the secondary namenode, and there is no way to express a
    cardinality that is optional based on HA status, so this handling
    now occurs in the Blueprint processor.
  - Adds/updates unit tests for all Java changes in this patch
  - Adds/updates unit tests for all Python stack changes in this patch


Diffs
-----

  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BaseBlueprintProcessor.java
 9cfb635 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java
 c4071d4 
  
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_namenode.py
 e8dbc59 
  
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params.py
 c9c81bb 
  
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/zkfc_slave.py
 ee8b418 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BaseBlueprintProcessorTest.java
 8540d8b 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
 abc0b15 
  ambari-server/src/test/python/stacks/2.0.6/HDFS/test_namenode.py 9c65210 
  ambari-server/src/test/python/stacks/2.0.6/HDFS/test_zkfc.py c358e9e 
  
ambari-server/src/test/python/stacks/2.0.6/configs/ha_bootstrap_active_node.json
 PRE-CREATION 
  
ambari-server/src/test/python/stacks/2.0.6/configs/ha_bootstrap_standby_node.json
 PRE-CREATION 

Diff: https://reviews.apache.org/r/29276/diff/


Testing
-------

1. Ran the ambari-server unit tests: "Tests run: 2451, Failures: 0, Errors: 0, 
Skipped: 13"
2. Manually verified that I can start a 3-node HDFS HA Cluster with a 
Blueprint. I used the Ambari UI to verify that the cluster started via the 
Blueprint sets up the active and standby nodes.  I've also used the "hdfs 
haadmin" tool to verify the status of the NameNodes setup during a 
Blueprint-based HA install.  
3. Several times this week, I also started up a cluster with my changes 
applied, and then used the UI Wizard to setup NameNode HA, to make sure the 
stack changes don't break the UI support for adding HA to an existing cluster. 


Thanks,

Robert Nettleton

Reply via email to