¿Cómo optimizar tareas 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 datos grande / topología de red

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

Hardware de los productos básicos a menudo se almacena 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 aprovechar esta proximidad.

Mantener los datos y el código juntos es uno de los mejores optimizaciones para Mapa reducido actuación. En esencia, el cerrador de los elementos de procesamiento de hardware son el uno al otro, menor latencia que tendrá que lidiar.

Sincronización de datos grande

Debido a que es ineficaz para contener todos los resultados de su mapeo dentro del nodo, los mecanismos de sincronización copiar los resultados de los mapas de los nodos reduciendo 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, asegurando de nuevo un mayor rendimiento y una mejor eficiencia.

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 se apoya en un sistema de archivos distribuido. La principal diferencia entre los sistemas de archivos locales y distribuidas es la capacidad. Para hacer frente a las enormes cantidades de información en un mundo de grandes datos, sistemas de archivos deben ser distribuidas en varios equipos o nodos en una red.

Implementaciones MapReduce se basan en un estilo maestro-esclavo de la distribución, donde los maestros nodo almacena todos los metadatos, los derechos de acceso, mapeo y ubicación de los archivos y bloques, y así sucesivamente. Los esclavos son nodos donde se almacenan los datos reales. Todas las solicitudes van a la maestra y luego se manejan por el nodo esclavo apropiado. Al contemplar el diseño del sistema de archivos, se debe considerar lo siguiente:

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

  • 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 ser evitados. Sistemas de archivos distribuidos apoyo motores MapReduce funcionan mejor cuando se rellenan con un modesto número de archivos de gran tamaño.

  • La visión a largo plazo: Debido a 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ápidos de los cartógrafos o reductores. El enfoque óptimo es el código para transmitir una gran cantidad de datos cuando se está leyendo una y otra vez cuando es hora de escribir en el sistema de archivos.

  • Mantenerlo seguro: Pero no demasiado. Adición de capas de seguridad en el sistema de archivos distribuido se degrada su rendimiento. Los permisos de archivo están allí para protegerse de consecuencias imprevistas, 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.




» » » » ¿Cómo optimizar tareas MapReduce