Currently ambari-agent manages stacks via puppet modules. These modules are specific to HDP stacks in the sens that scripts strongly depend on it special features:
- Some packages only exists in HDP stack (e.g. hadoop-sbin, hadoop-pipes, etc.)
- Some scripts doesn’t exists in CDH stack (e.g. /usr/lib/hadoop/bin/hadoop-daemon.sh)
To allow ambari to manage CDH stacks, two ways are possible according to my point of view :
- Consider CDH services as new services. This includes development of new puppet modules named cdh instead hdp.
- Make the current puppet modules more generic by removing all hdp references in their names and develop an additional conditional level to handle cases as you deploy CDH or HDP stack.
The second method seems to be more attractive because it abstracts the tool from HDP naming.