Hierarchical clustering is an unsupervised learning technique where a hierarchy of clusters is built out of observations.
This clustering groups data at various levels of a cluster tree or dendrogram. It is not a single set of clusters, but a hierarchy of multiple levels where clusters at a particular level are joined as clusters on the next level. This allows you to decide the level of clustering that is most suitable.
The hierarchical clusters essentially are of two types: