private void initComponentNameMap() {
    componentNameMap.put("NAMENODE_HOST",           Collections.singleton("NAMENODE"));
    componentNameMap.put("SECONDARY_NAMENODE_HOST", Collections.singleton("SECONDARY_NAMENODE"));
    componentNameMap.put("OOZIE_SERVER_HOST",       Collections.singleton("OOZIE_SERVER"));
    componentNameMap.put("WEBHCAT_HOST",            Collections.singleton("WEBHCAT_SERVER"));
    componentNameMap.put("FLUME_HOSTS",             Collections.singleton("FLUME_SERVER"));
    componentNameMap.put("HBASE_MASTER",            Collections.singleton("HBASE_MASTER"));
    componentNameMap.put("HBASE_REGIONSERVERS",     Collections.singleton("HBASE_REGIONSERVER"));
    componentNameMap.put("ZOOKEEPER_HOSTS",         Collections.singleton("ZOOKEEPER_SERVER"));

    Set<String> slaveComponents = new HashSet<String>();
    slaveComponents.add("DATANODE");
    componentNameMap.put("SLAVE_HOSTS", slaveComponents);

    Set<String> hiveComponents = new HashSet<String>();
    hiveComponents.add("HIVE_SERVER");
    hiveComponents.add("HIVE_METASTORE");
    hiveComponents.add("HIVE_CLIENT");
    componentNameMap.put("HIVE_SERVER_HOST", hiveComponents);

    Integer majorStackVersion = getMajorStackVersion();
    Integer minorStackVersion = getMinorStackVersion();
    if(majorStackVersion != null) {
      if(majorStackVersion == 1) {
        Set<String> mapReduceComponents = new HashSet<String>();
        mapReduceComponents.add("JOBTRACKER");
        mapReduceComponents.add("HISTORYSERVER");
        componentNameMap.put("JOBTRACKER_HOST", mapReduceComponents);

        slaveComponents.add("TASKTRACKER");
      }
      if(majorStackVersion == 2) {
        componentNameMap.put("JOURNALNODE_HOST", Collections.singleton("JOURNALNODE"));
        componentNameMap.put(minorStackVersion > 0 ? "NN_HA_JOURNALNODE_HOSTS" : "HA_JOURNALNODE_HOSTS", Collections.singleton("JOURNALNODE"));

        Set<String> haNamenodeComponents = new HashSet<String>();
        haNamenodeComponents.add("NAMENODE");
        haNamenodeComponents.add("ZKFC");
        componentNameMap.put(minorStackVersion > 0 ? "NN_HA_STANDBY_NAMENODE_HOST" : "HA_NAMENODE_HOST", haNamenodeComponents);

        Set<String> mapReduce2Components = new HashSet<String>();
        mapReduce2Components.add("HISTORYSERVER");
        mapReduce2Components.add("RESOURCEMANAGER");
        componentNameMap.put("RESOURCEMANAGER_HOST", mapReduce2Components);

        componentNameMap.put("RM_HA_STANDBY_RESOURCEMANAGER_HOST", Collections.singleton("RESOURCEMANAGER"));

        slaveComponents.add("NODEMANAGER");
        //hiveComponents.add("MYSQL_SERVER");

        Set<String> clientHosts = new HashSet<String>();
        clientHosts.add("PIG");
        clientHosts.add("SQOOP");
        clientHosts.add("YARN_CLIENT");
        clientHosts.add("MAPREDUCE2_CLIENT");
        componentNameMap.put("CLIENT_HOSTS", clientHosts);
      }
    }
  }
Component name mapping to account for differences in what is provided by the MSI
and what is expected by the Ambari providers.
contrib/ambari-scom/ambari-scom-server/src/main/java/org/apache/ambari/msi/ClusterDefinition.java