← Back

Automating an HDP Cluster with Puppet

What Is It?

A Puppet module from 2018–2019 that automates deploying an Ambari-managed Hortonworks Data Platform (HDP) cluster: installs and configures the Ambari server and agents, sets up PostgreSQL as the backing metastore for Hive and Oozie, and generates a self-signed certificate so the Ambari API runs over HTTPS instead of plain HTTP.

Chef, then Puppet. This wasn't the first time I automated an HDP deployment – I'd done it before with Chef, and this Puppet module was the second pass at the same problem: get Ambari installed, configured, and pointed at a database, without touching a server by hand. The Chef-era version didn't survive to today except for a note from that era on how to automate infrastructure application with Chef, but this Puppet one did.

The Stack

Built With

What Actually Happens on a Node

Broken down by manifest, roughly in the order it runs:

Every Node (hdp::default)

Worker Nodes (hdp::agent)

The Ambari Server (hdp::server)

Scala, Spark, and This

This overlaps with when I was deep into Scala and Spark – the 2016 USA election analysis with Spark GraphX is from a couple years earlier, but HDP and Spark were the same world: bringing up and babysitting a cluster was the unglamorous prerequisite to actually being able to run Spark jobs on one.

The source is open, at jane-natucci/my-puppet-hdp.