Why should I use a Hashing Vectorizer for text clustering?

I am trying to clusterize some textual data, and I am following the scikit-learn example for doing so.

In the example, you have the option to use a Hashing Vectorizer followed by a TF-IDF vectorizer, and this is the default pipeline:

# Perform an IDF normalization on the output of HashingVectorizer
hasher = HashingVectorizer(n_features=opts.n_features,
                           stop_words='english', alternate_sign=False,
vectorizer = make_pipeline(hasher, TfidfTransformer())
  1. What does a Hashing Vectorizer exactly do? I cannot get what it exactly does neither by the documentation nor from Wikipedia
  2. What are the advantages and disadvantages on using a Hashing Vectorizer for text clustering? In the example, it is given as an option (you can also use only a TF-IDF, but the default option is to use Hashing Vectorizer+TF-IDF)