Cómo optimizar las tareas de mapreduce

Aparte de la optimización del código de la aplicación actual con MapReduce para proyectos de grandes volúmenes de datos, puede utilizar algunas técnicas de optimización para mejorar la fiabilidad y el rendimiento. Se dividen en tres categorías: hardware / topología de la red, de sincronización, y del sistema de archivos.

hardware de grandes volúmenes de datos / topología de red

Independiente de la aplicación, el hardware y redes más rápido es probable que produzca los mejores tiempos de ejecución para su software. Una ventaja distinta de Mapa reducido es la capacidad para funcionar en grupos de bajo costo de hardware de consumo y redes estándar. Si no se presta atención a sus servidores donde se organizan físicamente, no obtendrá el mejor rendimiento y alto grado de tolerancia a fallos necesaria para apoyar las tareas de datos grandes.

hardware básico se almacena a menudo en bastidores en el centro de datos. La proximidad del hardware dentro del rack ofrece una ventaja de rendimiento en comparación con el movimiento de datos y / o código del estante de rack. Durante la implementación, puede configurar su Mapa reducido motor a tener en cuenta y tomar ventaja de esta proximidad.

Mantener los datos y el código juntos es uno de los mejores optimizaciones para Mapa reducido actuación. En esencia, cuanto más cerca los elementos de procesamiento de hardware son el uno al otro, menor latencia que se tiene que tratar.

Gran sincronización de datos

Debido a que es ineficaz para contener todos los resultados de su asignación en el nodo, los mecanismos de sincronización copia de los resultados de los mapas a los nodos que reducen inmediatamente después de haber completado por lo que el tratamiento puede comenzar de inmediato. Todos los valores de la misma clave se envían a la misma reductor, lo que asegura un mayor rendimiento y una mejor eficiencia.

Video: MapReduce Tutorial | What is MapReduce | Hadoop MapReduce Tutorial | Edureka

Las salidas de reducción se escriben directamente en el sistema de archivos, por lo que deben ser diseñados y afinados para obtener mejores resultados.

sistema de archivos de datos grandes

Su aplicación MapReduce es apoyado por un sistema de archivos distribuido. La principal diferencia entre los sistemas de archivos locales y distribuidas es la capacidad. Para manejar las enormes cantidades de información en un mundo de grandes datos, sistemas de archivos deben ser repartidos en varios equipos o nodos en una red.

MapReduce implementaciones se basan en un estilo maestro-esclavo de distribución, donde los nodos tiendas de dominar todos los metadatos, los derechos de acceso, cartografía y ubicación de los archivos y bloques, y así sucesivamente. Los esclavos son nodos en los que se almacenan los datos real. Todas las solicitudes van al maestro y luego son manejados por el nodo esclavo apropiado. Al contemplar el diseño del sistema de archivos, se debe considerar lo siguiente:

  • Mantenerlo caliente: Como era de esperar, el nodo maestro podría conseguir con exceso de trabajo, porque todo comienza allí. Además, si falla el nodo maestro, todo el sistema de archivos es inaccesible hasta que se restablezca el maestro. Una optimización muy importante es crear un nodo maestro “Espera en caliente” que puede saltar en servicio si se produce un problema con el maestro en línea.

    Video: Mapreduce

  • Cuanto más grande, mejor: Tamaño del archivo es también una consideración importante. Un montón de archivos pequeños (menos de 100 MB) deben evitarse. sistemas de archivos distribuidos de apoyo motores de MapReduce funcionan mejor cuando se rellenan con un modesto número de archivos de gran tamaño.

    Video: From MapReduce to Spark: An Ecosystem Evolves for New User Needs

  • La visión a largo plazo: Debido a que las cargas de trabajo se gestionan en lotes, el ancho de banda de red altamente sostenida es más importante que los tiempos de ejecución rápida de los creadores de mapas o reductores. El enfoque óptimo es el código para transmitir grandes cantidades de datos cuando se está leyendo y de nuevo cuando es el momento de escribir en el sistema de archivos.

    Video: Basics of MapReduce - Intro to Data Science

  • Mantenerlo seguro: Pero no demasiado. La adición de capas de seguridad en el sistema de archivos distribuido se degradará su rendimiento. Los permisos de archivo están ahí para protegerse de las consecuencias no deseadas, comportamiento no malicioso. El mejor enfoque es asegurar que sólo los usuarios autorizados tienen acceso al entorno de centro de datos y para mantener el sistema de archivos distribuido protegida desde el exterior.

Artículos Relacionados