noviembre 23, 2023

La pila de software de Google. Map Reduce

La pila de software de Google.

    

    Google [1] publicó tres artículos clave que revelan la arquitectura de su plataforma entre 2003 y 2006. Los artículos de GFS y MapReduce  [2], [3]sirvieron como base para la arquitectura central de Hadoop. El tercer artículo, sobre BigTable [4], sirvió como base para uno de los primeros sistemas formales de bases de datos NoSQL: HBase.

    La arquitectura de Google en ese momento comprendía cientos de miles de servidores de bajo costo, cada uno de los cuales tenía su propio almacenamiento conectado directamente. Para manejar ese cantidad  de servidores  Google desarrolló tres capas principales de software que sirvieron de base para la plataforma de Google. Éstas eran [1]:

Sistema de archivos de Google (GFS): un sistema de archivos de clúster distribuido que permite acceder a todos los discos dentro del centro de datos de Google como un sistema de archivos masivo, distribuido y redundante.

MapReduce: un marco de procesamiento distribuido para paralelizar algoritmos en una gran cantidad de servidores potencialmente poco confiables y ser capaz de manejar conjuntos de datos masivos.

BigTable: un sistema de base de datos no relacional que utiliza el sistema de archivos de Google para almacenamiento.


MapReduce

    MapReduce es un modelo de programación para la paralelización de propósito general del procesamiento intensivo de datos. MapReduce divide el procesamiento en dos fases: una fase de mapeo, en la que los datos se dividen en fragmentos que pueden procesarse mediante subprocesos separados, que potencialmente se ejecutan en máquinas separadas; y una fase de reducción, que combina la salida de los mapeadores en el resultado final.

    El ejemplo  de MapReduce, que se reproduce de [1] es el programa de recuento de palabras, Figura 1. Supongamos que deseamos contar las apariciones de tipos de mascotas en algún archivo de entrada. Dividimos los datos en partes iguales en la fase del mapa. Luego, los datos se mezclan en grupos de tipos de mascotas. Finalmente, la fase de reducción cuenta las ocurrencias para proporcionar un total que se introduce en la salida.

1. Canalización simple de MapReduce. Tomado de [1]


    Las canalizaciones simples de MapReduce como se muestran en la Figura 1 son raras; Es mucho más típico que se encadenen varias fases de MapReduce para lograr resultados más complejos. Por ejemplo, puede haber varios archivos de entrada que deban fusionarse de alguna manera, o puede haber algún procesamiento iterativo complejo para realizar un análisis estadístico o de aprendizaje automático.

    La Figura 2 ilustra una canalización de MapReduce de varias etapas más compleja. En este ejemplo, un archivo que contiene información sobre visitas a varias páginas web de productos se une a un archivo que contiene detalles del producto (para obtener la categoría del producto) y luego a un archivo que contiene detalles del cliente, para determinar el país del cliente. Estos datos combinados luego se agregan para proporcionar un informe de categorías de productos, geografías de clientes y visitas a páginas.

 

2. MapReduce de varias etapas. Tomado de [1]



    Los procesos de MapReduce se pueden ensamblar en canales arbitrariamente complejos capaces de resolver una amplia gama de problemas de procesamiento de datos. Sin embargo, en muchos aspectos, MapReduce representa un enfoque de procesamiento de fuerza bruta y no siempre es la solución más eficiente o elegante. 
    También existe una categoría de problemas computacionales para los cuales MapReduce no puede ofrecer soluciones escalables.  Por todo ello, MapReduce se ha extendido dentro y fuera de Google mediante algoritmos más sofisticados y especializados. Sin embargo, a pesar de la creciente prevalencia de modelos de procesamiento alternativos, MapReduce sigue siendo un paradigma predeterminado y ampliamente aplicable.


Bibliografia


[1] Guy Harrison, Next Generation Database, Apress Berkeley, CA, Edition 1. 2016,  https://doi.org/10.1007/978-1-4842-1329-2

 



No hay comentarios.:

Publicar un comentario