Collecters and Registers

Hi,

I am new to Prometheus. I want to exactly know what are collecters and registers and why are they needed to write exporters ?