martes, 11 de marzo de 2014

Estudio: Capítulo 8 - Características avanzadas en MapReduce.


Capítulo 8 del libro "Hadoop: The Definitive Guide, 3rd Edition". Se introducen diferentes características y utilidades que incorpora MapReduce que pueden ser de ayuda, como son los contadores y la posibilidad de ordenar y unir datasets.
 

1 – Contadores. 

   Los contadores son un canal muy útil para poder obtener estadísticos sobre los datos procesados durante un determinado trabajo MapReduce y también para utilizarlos en tareas de debugging.
   Hadoop incorpora algunos contadores para cada trabajo que reportan diferentes métricas. En este apartados se presentan diferentes contadores integrados en Hadoop que recogen información tanto generales sobre el trabajo, como particulares sobre las diferentes tareas que lo componen.
   Aparte de los contadores que integra Hadoop, un programador puede añadir contadores personalizados utilizando el API de Java. 

1.1 – Contadores integrados.

1.1.1 – Contadores de tareas.
1.1.2 – Contadores de trabajos.

1.2 – Contadores definidos por el usuario en Java.

1.2.1 – Contadores dinámicos .
1.2.2 – Nombres de contadores legibles.
1.2.3 – Obtener el valor de los contadores.

1.3 – Contadores definidos por el usuario en Streaming.

2 – Ordenación de datos. 

Hadoop posee inherentemente una etapa de ordenación de datos en la etapa de shuffle, lo que se considera el corazón de Hadoop.  En este apartadoo se examinan diferentes formas de ordenar datasets y como se puede controlar el orden de la ordenación en MapReduce. Es preferible utilizar Pig o Hive para realizar tareas de ordenamiento de datos.
Una de las clases más interesantes que se presenta en este apartado es InputSampler, la cuál permite muestrear el espacio de las keys y obtener un subset reducido de datos. 

2.1 – Preparación.

2.2 – Ordenación parcial.

2.3 – Ordenación total.

2.4 – Ordenación secundaria.

3 – Unión de datasets. 

Al igual que sucede con la ordenación de datos, es preferible utilizar Pig, Hive o Cascading para realizar operaciones de unión de datasets en vez de escribir programas en MapReduce. 

3.1 – Uniones desde el proceso map.

3.2 – Unión desde el proceso reduce.

4 – Datos adicionales. 

   En determinados trabajos puede ser necesario algún tipo de información (sólo lectura) extra para procesar el conjunto de datos que componen el dataset. Se debe proporcional acceso a los datos adicionales en todas las tareas map o reduce (están esparcidas a lo largo de todo el cluster) de una forma eficiente. Se pueden añadir diferentes parejas arbitrarias de key/value en la configuración de un trabajo (muy útil para pasar cantidades de datos no muy elevados como metadatos para accedidos por las tareas), o se puede utilizar el mecanismo de caché distribuida que proporciona Hadoop.
   La caché distribuida proporciona un servicio para copiar ficheros a los nodos que ejecutan las tareas en el momento preciso en el que los necesitan para ejecutarse.

4.1 – Utilizando la configuración de un trabajo.

4.2 – Caché distribuida.

No hay comentarios:

Publicar un comentario