Un trabajo o programa MapReduce se divide en tres componentes principales. El driver es el punto de entrada y define la parametrización y el entorno. La clase mapper es responsable de la primera fase y se encarga de filtrar y de transformar cada dato original generando un par clave-valor. Por último, la clase reducer se encarga de agregar los resultados producidos por los mappers mediante su clave.