hadoop - google - mapreduce hdfs
¿Es mejor utilizar el paquete mapred o mapreduce para crear un trabajo de Hadoop? (3)
Funcionalidad sabia que no hay mucha diferencia entre la oahmapred
anterior ( oahmapred
) y la nueva ( oahmapreduce
). La única diferencia significativa es que los registros se envían al asignador / reductor en la antigua API. Mientras que la nueva API admite ambos mecanismos de extracción / extracción. Puede obtener más información sobre el mecanismo de extracción here .
Además, la antigua API no ha sido un-deprecated desde 0.21. Puede encontrar más información sobre la nueva API here .
Como mencionaste, algunas de las clases (como MultipleTextOutputFormat) no se han migrado a la nueva API, debido a esto y al motivo mencionado anteriormente, es mejor seguir con la API anterior (aunque una traducción suele ser bastante simple).
Para crear trabajos de MapReduce, puede usar el paquete org.apache.hadoop.mapred
o el paquete org.apache.hadoop.mapreduce
más nuevo para Mappers y Reductores, Trabajos ... El primero se marcó como obsoleto, pero esto se revertió mientras tanto. Ahora me pregunto si es mejor usar el viejo paquete mapred o el nuevo paquete mapreduce para crear un trabajo y por qué. ¿O solo depende de si necesita cosas como MultipleTextOutputFormat, que solo está disponible en el paquete mapred anterior?
Tanto las API antiguas como las nuevas son buenas. La nueva API es más limpia. Use la nueva API siempre que pueda, y use la anterior donde necesite clases específicas que no estén presentes en la nueva API (como MultipleTextOutputFormat
)
Pero tenga cuidado de no utilizar una combinación de API antiguas y nuevas en el mismo trabajo de Mapreduce. Eso lleva a problemas extraños.
Antigua API (mapred)
Existe en el paquete org.apache.hadoop.mapred
Proporcionar una configuración de trabajo de mapa / reducir.
- Reduce los valores de una clave determinada, en función del iterador
- Summary paquete
Nueva API (mapreduce)
Existe en el paquete org.apache.hadoop.mapreduce
La configuración del trabajo se realiza por clase separada, denominada JobConf, que es la extensión de la Configuración
ClaseReduce los valores de una clave determinada, en función de Iterable