Tutorial de Hadoop: ¡Todo lo que necesita saber sobre Hadoop!
Si aspira a aprender Hadoop en el camino correcto, entonces ha aterrizado en el lugar perfecto. En este artículo del tutorial de Hadoop, aprenderá desde los conceptos básicos hasta los conceptos avanzados de Hadoop en un método muy simple y transparente. De preferencia, también puede ver el siguiente video en el que nuestro experto en capacitación de Hadoop analiza los conceptos de Hadoop junto con ejemplos prácticos.
Este “Tutorial de Hadoop para principiantes” de Pentademy le ayudará a comprender el problema con el sistema tradicional mientras procesa Big Data y cómo lo resuelve Hadoop.
En este artículo del tutorial de Hadoop , cubriremos los siguientes temas:
- ¿Cómo empezó todo?
- ¿Qué es Big Data?
- Big Data y Hadoop: analogía de restaurantes
- ¿Qué es Hadoop?
- Hadoop como solución
- Características de Hadoop
- Componentes principales de Hadoop
- Estudio de caso de Hadoop Last.FM
¿Cómo empezó todo?
Antes de entrar en detalles técnicos en este artículo tutorial de Hadoop, permítanme comenzar con una historia interesante sobre ¿Cómo llegó a existir Hadoop? y ¿Por qué es tan popular en la industria hoy en día? .
Entonces, todo comenzó con dos personas, Mike Cafarella y Doug Cutting, quienes estaban en el proceso de construir un sistema de motor de búsqueda que puede indexar mil millones de páginas . Después de su investigación, estimaron que dicho sistema costará alrededor de medio millón de dólares en hardware, con un costo de funcionamiento mensual de $ 30,000, que es bastante caro. Sin embargo, pronto se dieron cuenta de que su arquitectura no sería lo suficientemente capaz de trabajar con miles de millones de páginas en la web.
Se encontraron con un documento, publicado en 2003, que describía la arquitectura del sistema de archivos distribuidos de Google, llamado GFS, que se estaba utilizando en producción en Google . Ahora, este documento sobre GFS demostró ser algo que estaban buscando, y pronto se dieron cuenta de que resolvería todos sus problemas de almacenamiento de archivos muy grandes que se generan como parte del proceso de indexación y rastreo web.
Más tarde, en 2004, Google publicó un artículo más que presentó MapReduce al mundo. Finalmente, estos dos artículos llevaron a la fundación del marco denominado “Hadoop”. Doug citó la contribución de Google al desarrollo del marco de Hadoop:
“ Google vive unos años en el futuro y nos envía mensajes al resto de nosotros. ”
Entonces, a estas alturas ya te habrás dado cuenta de lo poderoso que es Hadoop. Ahora, antes de pasar a Hadoop, comencemos la discusión con Big Data, que condujo al desarrollo de Hadoop.
¿Qué es Big Data?
¿Alguna vez se ha preguntado cómo evolucionan las tecnologías para satisfacer las necesidades emergentes?
Por ejemplo:
Antes teníamos teléfonos fijos , pero ahora pasamos a los teléfonos inteligentes. De manera similar, ¿cuántos de ustedes recuerdan las unidades de disquete que se usaban ampliamente en los años 90? Estas unidades de disquete han sido reemplazadas por discos duros porque estas unidades de disquete tenían una capacidad de almacenamiento y una velocidad de transferencia muy bajas.
Por lo tanto, esto hace que las unidades de disquete sean insuficientes para manejar la cantidad de datos con la que estamos tratando hoy. De hecho, ahora podemos almacenar terabytes de datos en la nube sin preocuparnos por las limitaciones de tamaño.
Ahora, hablemos de varios impulsores que contribuyen a la generación de datos.
¿Has oído hablar de IoT ?
IoT conecta su dispositivo físico a Internet y lo hace más inteligente. Hoy en día, tenemos aires acondicionados inteligentes, televisores, etc. Su acondicionador de aire inteligente monitorea constantemente la temperatura de su habitación junto con la temperatura exterior y, en consecuencia, decide cuál debe ser la temperatura de la habitación. Ahora imagine cuántos datos se generarían en un año con un acondicionador de aire inteligente instalado en decenas y miles de casas. Con esto, puede comprender cómo IoT está contribuyendo de manera importante a Big Data.
Ahora, hablemos del mayor contribuyente del Big Data que es, nada menos, las redes sociales .
Las redes sociales son uno de los factores más importantes en la evolución de Big Data, ya que proporcionan información sobre el comportamiento de las personas. Puede mirar la figura a continuación y tener una idea de cuántos datos se generan cada minuto:
Fig: Tutorial de Hadoop – Estadísticas de generación de datos de redes sociales
Además de la velocidad a la que se generan los datos, el segundo factor es la falta de formato o estructura adecuados en estos conjuntos de datos que hace que el procesamiento sea un desafío.
Tutorial de Hadoop: Big Data y Hadoop – Analogía de restaurantes
Tomemos una analogía de un restaurante para comprender los problemas asociados con Big Data y cómo Hadoop resolvió ese problema.
Bob es un hombre de negocios que ha abierto un pequeño restaurante. Inicialmente, en su restaurante solía recibir dos pedidos por hora y tenía un chef con un estante de comida en su restaurante que era suficiente para manejar todos los pedidos.
Fig: Tutorial de Hadoop: escenario de restaurante tradicional
Ahora comparemos el ejemplo del restaurante con el escenario tradicional donde los datos se generaban a un ritmo constante y nuestros sistemas tradicionales como RDBMS son lo suficientemente capaces de manejarlos, al igual que el chef de Bob. Aquí, puede relacionar el almacenamiento de datos con el estante de alimentos del restaurante y la unidad de procesamiento tradicional con el chef como se muestra en la figura anterior.
Fig: Tutorial de Hadoop – Escenario tradicional
Después de unos meses, Bob pensó en expandir su negocio y, por lo tanto, comenzó a tomar pedidos en línea y agregó algunas cocinas más al menú del restaurante para atraer a una audiencia más amplia. Debido a esta transición, la velocidad a la que estaban recibiendo pedidos se elevó a una alarmante cifra de 10 pedidos por hora y se volvió bastante difícil para un solo cocinero hacer frente a la situación actual. Consciente de la situación en el procesamiento de los pedidos, Bob comenzó a pensar en la solución.
Fig: Tutorial de Hadoop: escenario de procesamiento distribuido
De manera similar, en el escenario de Big Data, los datos comenzaron a generarse a un ritmo alarmante debido a la introducción de varios impulsores de crecimiento de datos, como redes sociales, teléfonos inteligentes, etc.
Ahora, el sistema tradicional, al igual que el cocinero en el restaurante de Bob, no era lo suficientemente eficiente para manejar este cambio repentino. Por lo tanto, era necesario un tipo diferente de estrategia de soluciones para hacer frente a este problema.
Después de mucha investigación, a Bob se le ocurrió una solución en la que contrató a 4 chefs más para abordar la enorme tasa de pedidos recibidos. Todo iba bastante bien, pero esta solución generó un problema más. Dado que cuatro chefs compartían el mismo estante de alimentos, el mismo estante de alimentos se estaba convirtiendo en el cuello de botella de todo el proceso. Por lo tanto, la solución no fue tan eficiente como pensaba Bob.
Fig: Tutorial de Hadoop – Fallo del escenario de procesamiento distribuido
De manera similar, para abordar el problema del procesamiento de grandes conjuntos de datos, se instalaron múltiples unidades de procesamiento para procesar los datos en paralelo (al igual que Bob contrató a 4 chefs). Pero incluso en este caso, traer varias unidades de procesamiento no fue una solución efectiva porque la unidad de almacenamiento centralizada se convirtió en el cuello de botella.
En otras palabras, el rendimiento de todo el sistema está impulsado por el rendimiento de la unidad central de almacenamiento. Por lo tanto, en el momento en que nuestro almacenamiento central deja de funcionar, todo el sistema se ve comprometido. Por lo tanto, nuevamente existía la necesidad de resolver este único punto de falla.
Fig: Tutorial de Hadoop: solución al problema del restaurante
A Bob se le ocurrió otra solución eficiente, dividió a todos los chefs en dos jerarquías, es decir, un chef junior y un chef principal, y asignó a cada chef junior un estante de comida. Supongamos que el plato es salsa de carne. Ahora, de acuerdo con el plan de Bob, un chef junior preparará la carne y el otro chef junior preparará la salsa. En el futuro, transferirán tanto la carne como la salsa al jefe de cocina, donde el jefe de cocina preparará la salsa de carne después de combinar ambos ingredientes, que luego se entregará como el pedido final.
Fig: Tutorial de Hadoop – Hadoop en la analogía del restaurante
Hadoop funciona de manera similar al restaurante de Bob. Como la estantería de alimentos se distribuye en el restaurante de Bob, de manera similar, en Hadoop, los datos se almacenan de manera distribuida con replicaciones, para proporcionar tolerancia a fallas. Para el procesamiento en paralelo, primero los datos son procesados por los esclavos donde se almacenan para algunos resultados intermedios y luego esos resultados intermedios son fusionados por el nodo maestro para enviar el resultado final.
Ahora, debe tener una idea de por qué Big Data es una declaración de problema y cómo lo resuelve Hadoop . Como acabamos de comentar anteriormente, había tres desafíos principales con Big Data:
- El primer problema es almacenar la colosal cantidad de datos
- El segundo problema es almacenar datos heterogéneos
- Finalmente, centrémonos en el tercer problema, que es la velocidad de procesamiento.
No es posible almacenar grandes cantidades de datos en un sistema tradicional. La razón es obvia, el almacenamiento se limitará a un sistema y los datos están aumentando a un ritmo tremendo.
Ahora sabemos que almacenar es un problema, pero déjame decirte que es solo una parte del problema. Los datos no solo son enormes, sino que también están presentes en varios formatos, es decir, no estructurados, semiestructurados y estructurados. Por lo tanto, debe asegurarse de tener un sistema para almacenar diferentes tipos de datos que se generan a partir de varias fuentes.
Ahora bien, el tiempo necesario para procesar esta enorme cantidad de datos es bastante elevado, ya que los datos a procesar son demasiado grandes.
Para resolver el problema del almacenamiento y el procesamiento, se crearon dos componentes centrales en Hadoop:
¿Qué es Hadoop?
Hadoop es un marco de software de código abierto que se utiliza para almacenar y procesar Big Data de forma distribuida en grandes grupos de hardware básico. Hadoop tiene la licencia Apache v2.
Hadoop fue desarrollado, basado en el artículo escrito por Google sobre el sistema MapReduce y aplica conceptos de programación funcional. Hadoop está escrito en el lenguaje de programación Java y se encuentra entre los proyectos de Apache de más alto nivel. Hadoop fue desarrollado por Doug Cutting y Michael J. Cafarella.
Hadoop como solución
Entendamos cómo Hadoop proporciona una solución a los problemas de Big Data que hemos discutido hasta ahora.
Entrenamiento de Big Data
- El primer problema es almacenar una gran cantidad de datos .
- El siguiente problema fue almacenar una variedad de datos .
- El tercer desafío fue procesar los datos más rápido .
Como puede ver en la imagen de arriba, HDFS proporciona una forma distribuida de almacenar Big Data. Sus datos se almacenan en bloques en DataNodes y usted especifica el tamaño de cada bloque. Suponga que tiene 512 MB de datos y ha configurado HDFS de modo que cree 128 MB de bloques de datos. Ahora, HDFS dividirá los datos en 4 bloques como 512/128 = 4 y los almacenará en diferentes DataNodes. Al almacenar estos bloques de datos en DataNodes, los bloques de datos se replican en diferentes DataNodes para proporcionar tolerancia a fallas.
Hadoop sigue la escala horizontal en lugar de la escala vertical. En el escalado horizontal, puede agregar nuevos nodos al clúster HDFS sobre la marcha según los requisitos, en lugar de aumentar la pila de hardware presente en cada nodo.
Como puedes ver en la imagen de arriba, en HDFS puedes almacenar todo tipo de datos ya sean estructurados, semiestructurados o no estructurados. En HDFS, no hay validación de esquema de pre-volcado. También sigue escribir una vez y leer muchos modelos. Debido a esto, puede escribir cualquier tipo de datos una vez y puede leerlos varias veces para encontrar información.
Para resolver esto, movemos la unidad de procesamiento a datos en lugar de mover datos a la unidad de procesamiento.
Entonces, ¿qué significa mover la unidad de cálculo a datos?
Significa que en lugar de mover datos de diferentes nodos a un solo nodo maestro para su procesamiento, la lógica de procesamiento se envía a los nodos donde se almacenan los datos para que cada nodo pueda procesar una parte de los datos en paralelo. Finalmente, toda la salida intermedia producida por cada nodo se fusiona y la respuesta final se envía de vuelta al cliente.
Características de Hadoop
Fig: Tutorial de Hadoop – Funciones de Hadoop
Fiabilidad
Cuando las máquinas funcionan como una sola unidad, si una de las máquinas falla, otra máquina asumirá la responsabilidad y funcionará de manera confiable y tolerante a fallas . La infraestructura de Hadoop tiene características de tolerancia a fallas incorporadas y, por lo tanto, Hadoop es altamente confiable.
Económico
Hadoop utiliza hardware básico (como su PC, computadora portátil). Por ejemplo, en un pequeño clúster de Hadoop , todos sus DataNodes pueden tener configuraciones normales como 8-16 GB de RAM con 5-10 TB de disco duro y procesadores Xeon.
Pero si hubiera usado RAID basado en hardware con Oracle para el mismo propósito, terminaría gastando al menos 5 veces más. Por lo tanto, se minimiza el costo de propiedad de un proyecto basado en Hadoop . Es más fácil mantener un entorno Hadoop y también es económico. Además, Hadoop es un software de código abierto y, por lo tanto, no tiene costo de licencia.
Escalabilidad
Hadoop tiene la capacidad incorporada de integrarse sin problemas con los servicios basados en la nube . Por lo tanto, si está instalando Hadoop en una nube, no necesita preocuparse por el factor de escalabilidad porque puede seguir adelante y adquirir más hardware y expandir su configuración en minutos cuando sea necesario.
Flexibilidad
Hadoop es muy flexible en términos de capacidad para manejar todo tipo de datos. Hablamos de “Variedad” en nuestro blog anterior sobre Big Data Tutorial, donde los datos pueden ser de cualquier tipo y Hadoop puede almacenarlos y procesarlos todos, ya sean datos estructurados, semiestructurados o no estructurados.
Estas características hacen de 4 Hadoop un favorito como una solución a los proble mas de grandes datos. Ahora que sabemos qué es Hadoop, podemos explorar los componentes centrales de Hadoop. Entendamos cuáles son los componentes centrales de Hadoop.
Componentes principales de Hadoop
Al configurar un clúster de Hadoop, tiene la opción de elegir muchos servicios como parte de su plataforma Hadoop, pero hay dos servicios que siempre son obligatorios para configurar Hadoop. Uno es HDFS (almacenamiento) y el otro es YARN (procesamiento) . HDFS significa Hadoop Distributed File System , que es una unidad de almacenamiento escalable de Hadoop, mientras que YARN se utiliza para procesar los datos, es decir, almacenados en HDFS de forma distribuida y paralela.
HDFS
Sigamos adelante con HDFS primero. Los componentes principales de HDFS son NameNode y DataNode . Hablemos en detalle sobre los roles de estos dos componentes.
Fig: Tutorial de Hadoop – HDFS
NameNode
- Es el demonio maestro que mantiene y administra los DataNodes (nodos esclavos)
- Se registra el metadatos de todos los bloques almacenados en el cluster, por ejemplo, la ubicación de los bloques almacenados, tamaño de los archivos, los permisos, la jerarquía, etc .
- Registra todos y cada uno de los cambios que se realizan en los metadatos del sistema de archivos.
- Si se elimina un archivo en HDFS, NameNode lo registrará inmediatamente en el EditLog
- Que recibe regularmente un latido del corazón y un informe cuadra de todos los DataNodes en el clúster para asegurarse de que los DataNodes están vivos
- Mantiene un registro de todos los bloques en el HDFS y DataNode en el que están almacenados
- Tiene características de alta disponibilidad y federación que discutiré en la arquitectura HDFS en detalle
DataNode
- Es el demonio esclavo que se ejecuta en cada máquina esclava.
- Los datos reales se almacenan en DataNodes
- Es responsable de atender las solicitudes de lectura y escritura de los clientes.
- También se encarga de crear bloques, eliminar bloques y replicar los mismos en base a las decisiones tomadas por el NameNode
- Envía latidos al NameNode periódicamente para informar el estado general de HDFS; de forma predeterminada, esta frecuencia se establece en 3 segundos
Entonces, todo esto se trataba de HDFS en pocas palabras. Ahora, avancemos a nuestra segunda unidad fundamental de Hadoop, es decir, YARN.
HILO
YARN consta de dos componentes principales: ResourceManager y NodeManager .
Fig: Tutorial de Hadoop – HILO
Administrador de recursos
- Es un componente a nivel de clúster (uno para cada clúster) y se ejecuta en la máquina maestra.
- Administra recursos y programa aplicaciones que se ejecutan sobre YARN.
- Tiene dos componentes: Programador y Administrador de aplicaciones.
- El Programador es responsable de asignar recursos a las diversas aplicaciones en ejecución.
- El ApplicationManager es responsable de aceptar envíos de trabajos y negociar el primer contenedor para ejecutar la aplicación.
- Mantiene un registro de los latidos del Node Manager.
NodeManager
- Es un componente a nivel de nodo (uno en cada nodo) y se ejecuta en cada máquina esclava.
- Es responsable de administrar contenedores y monitorear la utilización de recursos en cada contenedor.
- También realiza un seguimiento del estado del nodo y la gestión de registros.
- Se comunica continuamente con ResourceManager para mantenerse actualizado
Ecosistema Hadoop
Hasta ahora, se habría dado cuenta de que Hadoop no es un lenguaje de programación ni un servicio, es una plataforma o marco que resuelve problemas de Big Data. Puede considerarlo como una suite que abarca una serie de servicios para ingerir, almacenar y analizar grandes conjuntos de datos junto con herramientas para la gestión de la configuración.
Fig: Tutorial de Hadoop – Ecosistema Hadoop
Hemos hablado del ecosistema Hadoop y sus componentes en detalle en nuestro blog del ecosistema Hadoop . Ahora, en este tutorial de Hadoop, háganos saber cómo Last.fm usó Hadoop como parte de su estrategia de solución .
Tutorial de Hadoop : estudio de caso de Last.FM
Last.FM es una radio por Internet y un servicio de descubrimiento de música impulsado por la comunidad fundado en 2002. Los usuarios transmiten información a los servidores de Last.FM indicando qué canciones están escuchando. Los datos recibidos se procesan y almacenan para que el usuario pueda acceder a ellos en forma de gráficos. Por lo tanto, Last.FM puede tomar decisiones inteligentes y compatibles con el gusto para generar recomendaciones. Los datos se obtienen de una de las dos fuentes que se indican a continuación:
- scrobble: cuando un usuario reproduce una pista de su elección y envía la información a Last.FM a través de una aplicación cliente.
- escuchar radio : cuando el usuario sintoniza una estación de radio Last.FM y transmite una canción.
Las aplicaciones Last.FM permiten a los usuarios amar, omitir o prohibir cada pista que escuchan. Estos datos de escucha de pistas también se transmiten al servidor.
- Más de 40 millones de visitantes únicos y 500 millones de visitas a la página cada mes
- Estadísticas de scrobble:
- Hasta 800 scrobbles por segundo
- Más de 40 millones de scrobbles al día
- Más de 75 mil millones de scrobbles hasta ahora
- Estadísticas de radio:
- Más de 10 millones de horas de trabajo al mes
- Más de 400 mil estaciones únicas por día
- Cada escucha de scrobble y radio genera al menos un logline
Hadoop por fin.FM
- 100 nodos
- 8 núcleos por nodo (doble núcleo cuádruple)
- 24 GB de memoria por nodo
- 8 TB (4 discos de 2 TB cada uno)
- Integración de Hive para ejecutar consultas SQL optimizadas para análisis
Last.FM comenzó a usar Hadoop en 2006 debido al crecimiento de usuarios de miles a millones. Con la ayuda de Hadoop, procesaron cientos de trabajos diarios, mensuales y semanales, incluidas estadísticas y métricas del sitio web, generación de gráficos (es decir, estadísticas de seguimiento), correcciones de metadatos (p. Ej., Errores ortográficos de artistas), indexación para búsqueda, combinación / formato de datos para recomendaciones. , información, evaluaciones e informes de datos. Esto ayudó a Last.FM a crecer enormemente y descubrir el gusto de sus usuarios, en función de los cuales comenzaron a recomendar música.
Espero que este blog sea informativo y agregue valor a sus conocimientos. En nuestro próximo blog sobre el ecosistema Hadoop , discutiremos en detalle las diferentes herramientas presentes en el ecosistema Hadoop.
Ahora que ha entendido Hadoop y sus características, consulte
Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios y nos comunicaremos con usted.
Comentarios
Los comentarios han sido cerrados