wordcount tutorial google example ejemplo java hadoop mapreduce

java - tutorial - mapreduce mongodb



ConfiguraciĆ³n de JobConf v/s para Hadoop 1.0.4 (1)

Hola, soy nuevo en Hadoop y es FileSystem. Vi dos ejemplos diferentes de WordCount usando JobConf y Configuration . ¿Cuál es la diferencia en ellos?

Estudié que JobConf era parte del antiguo paquete org.apache.hadoop.mapred (que se desaprobó en 0.20.x) pero Configuration forma parte del nuevo paquete org.apache.hadoop.mapreduce . Pero ahora en v1.0.4 no está en desuso.

Actualmente tenemos dos formas de ejecutar trabajos de reducción de mapas en Java, una es mediante el uso de clases (extendidas) en el paquete org.apache.hadoop.mapreduce y otra mediante la implementación de clases en el paquete org.apache.hadoop.mapred .

Quiero saber:

  1. ¿Cuál es la diferencia entre la estructura del paquete mapred y mapreduce y por qué mapred está en desuso?

  2. ¿Qué enfoque es mejor usar para v1.0.4 y por qué? JobConf o Configuration ?

  3. ¿Cuál es mejor para v1.0.4? mapred o mapreduce ?


Si miras en la página de lanzamientos , puedes ver que 1.0.4 corresponde a algo alrededor de 0.20.20x

Para dar un contexto, esto es lo que se estaba discutiendo en la lista de correo :

The "old" MapReduce API in org.apache.hadoop.mapred was deprecated in the 0.20 release series when the "new" (Context Objects) MapReduce API was added in org.apache.hadoop.mapreduce. Unfortunately, the new API was not complete in 0.20 and most users stayed with the old API. This has led to the confusing situation where the old API is generally recommended, even though it is deprecated.

Como puede ver, es principalmente una cuestión de compatibilidad retro.

Entonces, la conclusión es que, si está comenzando su aplicación ahora con la mapreduce 1.0.4, debería usar mapreduce y no mapred ya que es la mapred preferida ahora, pero aún puede usar el mapred antiguo si tiene aplicaciones heredadas. Lo que implica que deberías usar Configuration .

En cuanto a la diferencia entre mapred y mapreduce , como se explica en el extracto anterior, proviene principalmente de la introducción de objetos Context , pero hay un montón de otros cambios y nuevas clases que no están disponibles en el antiguo mapred .