Red de conocimiento informático - Material del sitio web - Cómo construir un clúster Hadoop de alto rendimiento para el procesamiento de big data

Cómo construir un clúster Hadoop de alto rendimiento para el procesamiento de big data

Cada vez más empresas están comenzando a utilizar Hadoop para procesar y analizar big data, pero el rendimiento general de un clúster de Hadoop depende del equilibrio de rendimiento entre CPU, memoria, red y almacenamiento. En este artículo, analizaremos cómo crear redes de alto rendimiento para clústeres de Hadoop, que es clave para procesar y analizar big data.

Acerca de Hadoop

"Big data" es una colección vaga de datos. El crecimiento continuo de datos masivos obliga a las empresas a gestionarlos de nuevas maneras. Big data es una gran colección de tipos de datos estructurados o no estructurados. Hadoop es una arquitectura de software lanzada por Apache para analizar petabytes de datos no estructurados y convertirlos en un formato que otras aplicaciones puedan administrar y procesar. Hadoop permite procesar big data y ayudar a las empresas a descubrir nuevas oportunidades comerciales a partir de los datos de los clientes. Si se puede procesar en tiempo real o casi en tiempo real, brindará poderosas ventajas a los usuarios de muchas industrias.

Hadoop está especialmente diseñado en base a los principios de MapReduce de Google y los sistemas de archivos distribuidos, y puede implementarse en redes generales y hardware de servidor para convertirlo en un clúster informático.

Modelo de Hadoop

Hadoop funciona cortando un conjunto de datos muy grande en unidades más pequeñas para que puedan consultarse y procesarse. Los recursos informáticos del mismo nodo se utilizan para el procesamiento de consultas en paralelo. Cuando se completa el procesamiento de la tarea, los resultados del procesamiento se resumen y se informan al usuario, o se procesan mediante una aplicación de análisis de negocios para su posterior análisis o visualización en el panel.

Para minimizar el tiempo de procesamiento, en esta arquitectura paralela, Hadoop "mueve trabajos a datos" en lugar de "mueve datos a trabajos" como en el modelo tradicional. Esto significa que una vez que los datos se almacenan en un sistema distribuido, durante las operaciones de búsqueda, consulta o extracción de datos en tiempo real, como el acceso a datos locales, solo habrá un resultado de consulta local entre los nodos durante el procesamiento de datos, lo que puede reducir la sobrecarga operativa.

La característica más importante de Hadoop es su procesamiento paralelo integrado y capacidades de expansión lineal, que pueden proporcionar consultas y generar resultados para grandes conjuntos de datos. Estructuralmente, Hadoop tiene dos partes principales:

Hadoop Distributed File System (HDFS) corta archivos de datos en bloques de datos y los almacena en múltiples nodos para proporcionar tolerancia a fallas y alto rendimiento. Además de las grandes E/S agregadas entre múltiples nodos, el rendimiento a menudo depende del tamaño del bloque de datos, digamos 128 MB. Un tamaño de bloque de datos típico en un sistema Linux tradicional puede ser de 4 KB.

El motor MapReduce acepta el trabajo de análisis del cliente a través del nodo JobTracker, descompone una tarea grande en varias tareas más pequeñas mediante "divide y vencerás" y luego la distribuye a cada nodo TaskTrack, usando el maestro/ sistema esclavo.Modo de distribución (como se muestra en la figura siguiente):

El sistema Hadoop tiene tres nodos funcionales principales: cliente, host y esclavo. El cliente inyecta archivos de datos en el sistema, recupera resultados del sistema y envía el trabajo de análisis a través del nodo host del sistema. El nodo maestro tiene dos funciones básicas: administrar el almacenamiento de datos de cada nodo y de los nodos esclavos en el sistema de archivos distribuido, y administrar el seguimiento, la asignación y el procesamiento de tareas de los nodos esclavos Map/Reduce. El rendimiento real del almacenamiento de datos y el procesamiento analítico depende del rendimiento de los nodos esclavos que ejecutan los nodos de datos y los rastreadores de tareas, que están comunicados y controlados por sus respectivos nodos maestros. Los nodos esclavos suelen tener múltiples bloques de datos y están asignados para manejar múltiples tareas durante un trabajo.

Implementación e implementación de Hadoop

El principal requisito de hardware para cada nodo es el equilibrio de los cuatro recursos de computación, memoria, red y almacenamiento de la ciudad y el condado. La solución comúnmente utilizada y considerada la "mejor" hoy en día es utilizar hardware heredado de costo relativamente bajo, implementar suficientes servidores para cubrir cualquier posible falla e implementar un sistema de bastidor completo.

El modo Hadoop requiere almacenamiento de conexión directa (DAS) entre el servidor y SAN o NAS. Hay tres razones principales para adoptar DAS.

En un clúster de configuración estandarizado, hay miles de nodos escalables. A medida que aumentan el costo, la baja latencia y los requisitos de capacidad de almacenamiento de los sistemas de almacenamiento, la configuración y la implementación simples se convierten en consideraciones importantes. Con la popularidad de los discos rentables de 1 TB, se pueden almacenar datos a nivel de terabytes de grandes clústeres en DAS. Esto resuelve el dilema de utilizar métodos de implementación tradicionales de SAN, que son extremadamente costosos. Cantidades de almacenamiento tan grandes hacen que Hadoop y el almacenamiento de datos tengan un costo inicial prohibitivo. Un número considerable de usuarios implementa y construye Hadoop utilizando servidores DAS de gran capacidad, donde los nodos de datos tienen entre 1 y 2 TB y los nodos de control de nombres entre 1 y 5 TB, como se muestra en la siguiente figura:

Fuente: Dell Brad Hedlund.

Como ocurre con la mayoría de las implementaciones de Hadoop, otros factores que afectan la infraestructura también pueden depender de los accesorios, como las tarjetas Gigabit Ethernet o los conmutadores Gigabit Ethernet integrados en el servidor. En términos de selección de hardware, como CPU y memoria del producto de la generación anterior, se puede construir una solución de bajo costo utilizando una interfaz Gigabit Ethernet que coincida con los requisitos de velocidad de transmisión de datos según el modelo de costos. Implementar Hadoop con 10 Gigabit Ethernet también es una buena opción.

El impacto de 10 Gigabit Ethernet en el clúster Hadoop

El rendimiento de Gigabit Ethernet es el principal factor que restringe el rendimiento general del sistema Hadoop. Por ejemplo, con grandes bloques de datos, si un nodo falla (o peor aún, todo el rack se cae), todo el clúster necesita recuperar terabytes de datos, lo que puede exceder el ancho de banda de red que Gigabit Ethernet puede proporcionar, reduciendo así el rendimiento. de todo el cúmulo. En grandes clústeres con miles de nodos, los dispositivos Gigabit Ethernet pueden experimentar congestión de la red durante el funcionamiento normal del sistema cuando ejecutan cargas de trabajo que requieren la redistribución de resultados intermedios entre los nodos de datos.

El objetivo de cada nodo de datos de Hadoop debe ser lograr un equilibrio entre CPU, memoria, almacenamiento y recursos de red. Si el rendimiento de cualquiera de los cuatro es relativamente pobre, entonces la potencia de procesamiento potencial del sistema puede encontrarse con un cuello de botella. Agregar más CPU y memoria afecta el almacenamiento y el equilibrio de la red. Cómo hacer que los nodos del clúster de Hadoop procesen datos de manera más eficiente, reduzcan los resultados y agreguen más nodos de almacenamiento HDFS al clúster de Hadoop.

Afortunadamente, la Ley de Moore, que afecta al desarrollo de la CPU y la memoria, también afecta al desarrollo de la tecnología de almacenamiento (discos de nivel TB) y la tecnología Ethernet (de Gigabit a Diez Gigabit o incluso superior). Actualizar por adelantado los componentes del sistema (como procesadores multinúcleo, discos con capacidad de 5 a 20 TB por nodo, memoria de 64 a 128 GB) y componentes de red, como tarjetas y conmutadores Ethernet de 10 Gigabit, es la opción más razonable para reequilibrar los recursos. 10 Gigabit Ethernet demostrará su valor en los clústeres de Hadoop, donde los altos niveles de utilización de la red conducirán a un ancho de banda más eficiente. El siguiente diagrama muestra la conexión entre un clúster de Hadoop y Ethernet de 10 Gb:

Muchos centros de datos empresariales han migrado a redes de 10 GbE para permitir la consolidación y virtualización de servidores. A medida que más y más empresas comienzan a implementar Hadoop, descubren que no necesitan implementar una gran cantidad de servidores montados en bastidor de 1U, sino menos servidores de mayor rendimiento para ampliar la cantidad de tareas que cada nodo de datos puede ejecutar. Muchas empresas optan por implementar servidores de 2U o 4U (como el Dell PowerEdge C2100), con aproximadamente entre 12 y 16 núcleos y 24 TB de capacidad de almacenamiento por nodo. La opción lógica en este entorno es aprovechar al máximo los dispositivos de 10 GbE y las tarjetas de red de 10 GbE implementadas en el clúster de Hadoop.

Cree un clúster Hadoop simple en su entorno de TI diario. Sin duda, hay muchos detalles que ajustar, pero los conceptos básicos son simples. Construir un sistema con un equilibrio de recursos informáticos, de almacenamiento y de red es importante para el éxito del proyecto. Para los clústeres de Hadoop con nodos densos, 10 Gigabit Ethernet puede proporcionar capacidades coincidentes para la expansión de los recursos informáticos y de almacenamiento sin causar una disminución en el rendimiento general del sistema.