Apache Hadoop en Amazon EMR

¿Por qué Apache Hadoop en EMR?

Apache™ Hadoop® es un proyecto de software de código abierto que se puede utilizar para procesar de forma eficaz conjuntos de datos de gran tamaño. En lugar de utilizar un equipo grande para procesar y almacenar los datos, Hadoop facilita la creación de clústeres de hardware de consumo para analizar conjuntos de datos masivos en paralelo.

El ecosistema de Hadoop contiene numerosas aplicaciones y motores de ejecución, lo que aporta una variedad de herramientas para satisfacer las necesidades de sus cargas de trabajo de análisis. Amazon EMR facilita la creación y administración de clústeres elásticos y completamente configurados de instancias de Amazon EC2 con Hadoop y otras aplicaciones ejecutadas en el ecosistema de Hadoop.

Aplicaciones y marcos en el ecosistema de Hadoop

Por lo general, Hadoop se refiere al proyecto Apache Hadoop, que incluye MapReduce (marco de ejecución), YARN (administrador de recursos) y HDFS (almacenamiento distribuido). También puede instalar Apache Tez, un marco de siguiente generación que se puede utilizar en lugar de Hadoop MapReduce como motor de ejecución. Amazon EMR también incluye EMRFS, un conector que permite que Hadoop utilice Amazon S3 como capa de almacenamiento.

Sin embargo, también existen otras aplicaciones y marcos en el ecosistema de Hadoop, incluidas herramientas que permiten realizar consultas de baja latencia, GUI para realizar consultas interactivas, diversas interfaces como SQL y bases de datos NoSQL distribuidas. El ecosistema de Hadoop incluye numerosas herramientas de código abierto diseñadas para incorporar funcionalidades adicionales a los componentes principales de Hadoop. Puede utilizar Amazon EMR para instalar y configurar de forma sencilla herramientas como Hive, Pig, Hue, Ganglia, Oozie y HBase en su clúster. También puede ejecutar otros marcos, como Apache Spark para el procesamiento en memoria o Presto para SQL interactivo, así como Hadoop en Amazon EMR.

Hadoop: los componentes básicos

Amazon EMR instala y configura mediante programación aplicaciones en el proyecto Hadoop, incluidas Hadoop MapReduce, YARN y HDFS, y Apache Tezen los nodos de su clúster.

Hadoop MapReduce y Tez, motores de ejecución del ecosistema Hadoop, procesan cargas de trabajo con marcos que dividen los trabajos en porciones más pequeñas que se pueden distribuir en nodos de su clúster de Amazon EMR. Como existe la posibilidad de que cualquier equipo del clúster falle, los motores se diseñaron para ofrecer tolerancia a errores. Si se produce un fallo en un servidor que está ejecutando una tarea, Hadoop la ejecuta en otro equipo hasta que se finalice.

Puede escribir programas de MapReduce y Tez en Java, usar Hadoop Streaming para ejecutar scripts personalizados de forma paralela, utilizar Hive y Pig para abstracciones de nivel superior en lugar de MapReduce y Tez, u otras herramientas que interactúen coh Hadoop.

En lo referente a Hadoop 2, Yet Another Resource Negotiator (YARN) se encarga de la administración de recursos. YARN supervisa todos los recursos de su clúster y se asegura de que se asignen de forma dinámica a fin de completar las tareas del trabajo de procesamiento. YARN puede administrar cargas de trabajo de Hadoop MapReduce y Tez, además de otros marcos distribuidos, como Apache Spark.

Al utilizar el sistema de archivos de EMR (EMRFS) en su clúster de Amazon EMR, puede aprovechar Amazon S3 como capa de datos para Hadoop. Amazon S3 es altamente escalable, de bajo costo y está diseñado para ofrecer durabilidad, lo que lo convierte en un almacén de datos ideal para el procesamiento de big data. Al almacenar sus datos en Amazon S3, puede separar la capa informática de la capa de almacenamiento, lo que le permite elegir el tamaño del clúster de Amazon EMR idóneo en función de la capacidad de CPU y memoria necesarias para sus cargas de trabajo en lugar de poseer nodos adicionales en su clúster para maximizar el almacenamiento en clúster. Además, puede eliminar el clúster de Amazon EMR cuando esté en reposo para ahorrar costos, mientras que los datos seguirán estando en Amazon S3.

EMRFS está optimizado para Hadoop a fin de realizar lecturas y escrituras en paralelo en Amazon S3 con alto rendimiento de manera directa. Además, puede procesar objetos cifrados con el cifrado del lado del cliente y del lado del servidor de Amazon S3. EMRFS le permite utilizar Amazon S3 como almacén de datos, mientras que Hadoop se puede usar en Amazon EMR como capa de consultas elástica.

Hadoop también incluye un sistema de almacenamiento distribuido, Hadoop Distributed File System (HDFS), que almacena datos en discos locales de su clúster en bloques de gran tamaño. HDFS tiene un factor de replicación configurable (con x3 por defecto), lo que aporta mayor disponibilidad y durabilidad. HDFS monitoriza la replicación y equilibra los datos entre los nodos si se producen fallos en los nodos y se agregan nodos nuevos.

HDFS se instala automáticamente con Hadoop en su clúster de Amazon EMR, y puede usar HDFS con Amazon S3 para almacenar sus datos de entrada y salida. Puede cifrar HDFS con facilidad con las configuraciones de seguridad de Amazon EMR. Además, Amazon EMR configura Hadoop para que use HDFS y el disco local para los datos intermedios creados durante los trabajos de Hadoop MapReduce, incluso si los datos de entrada se encuentran en Amazon S3.

Ventajas de Hadoop en Amazon EMR

Puede iniciar un nuevo clúster de Hadoop de forma dinámica y rápida, o añadir servidores a su clúster de Amazon EMR existente, con lo que se reduce significativamente el tiempo que se tarda en poner los recursos a disposición de sus usuarios y científicos de datos. El uso de Hadoop en la plataforma de AWS puede incrementar significativamente la agilidad de su empresa al reducir el costo y el tiempo que conlleva la asignación de recursos para la experimentación y el desarrollo.

La configuración, la creación de redes, la configuración de seguridad y la instalación del servidor en Hadoop, así como el constante mantenimiento administrativo, pueden resultar actividades complicadas y exigentes. Como servicio administrado, Amazon EMR satisface sus requisitos de infraestructura de Hadoop para que pueda concentrarse en sus actividades comerciales principales.

Puede integrar de forma sencilla su entorno de Hadoop con otros servicios como Amazon S3, Amazon Kinesis, Amazon Redshift y Amazon DynamoDB a fin de facilitar la transferencia de datos, los flujos de trabajo y el análisis en los diversos servicios de la plataforma de AWS. Además, puede usar el catálogo de datos de AWS Glue como un repositorio de metadatos administrado para Apache Hive y Apache Spark.

Muchos trabajos de Hadoop experimentan picos de tráfico. Por ejemplo, un trabajo de ETL se puede ejecutar una vez por hora, día o mes, mientras que es posible que los trabajos de modelado para empresas financieras o de secuenciación genética se ejecuten solamente unas pocas veces al año. El uso de Hadoop en Amazon EMR le permite iniciar estos clústeres de cargas de trabajo de forma sencilla, guardar los resultados y apagar sus recursos de Hadoop cuando ya no los necesite a fin de evitar costes de infraestructura innecesarios. EMR 6.x es compatible con Hadoop 3, que permite que YARN NodeManager lance contenedores ya sea directamente al alojamiento del clúster de EMR o dentro de un contenedor Docker. Consulte nuestra documentación para obtener más información.

Al usar Hadoop en Amazon EMR, dispone de la flexibilidad de lanzar sus clústeres en cualquier cantidad de zonas de disponibilidad en cualquier región de AWS. Un problema o amenaza potencial en una región o zona se puede evitar de forma sencilla mediante la implementación de un clúster en otra zona en cuestión de minutos.

La planificación de la capacidad antes de implementar un entorno de Hadoop puede resultar, con frecuencia, en la existencia de costosos recursos en reposo o limitaciones de recursos. Con Amazon EMR, puede crear clústeres con la capacidad necesaria en cuestión de minutos y utilizar Escalado administrado por EMR para ampliar y reducir los nodos automáticamente.

¿Cómo se relacionan Hadoop y los big data?

Dada su enorme escalabilidad, Hadoop se utiliza con frecuencia para procesar cargas de trabajo de big data. Para incrementar la potencia de procesamiento de su clúster de Hadoop, puede añadir más servidores con los recursos de CPU y memoria idóneos para satisfacer sus necesidades.

Hadoop proporciona un nivel elevado de durabilidad y disponibilidad, a la vez que permite procesar cargas de trabajo de análisis informático en paralelo. La combinación de disponibilidad, durabilidad y escalabilidad de procesamiento convierte a Hadoop en la opción ideal para cargas de trabajo de big data. Puede usar Amazon EMR para crear y configurar un clúster de instancias de Amazon EC2 que ejecuten Hadoop en cuestión de minutos, y comenzar a extraer valor de sus datos.

Casos de uso

Apache y Hadoop son marcas comerciales de Apache Software Foundation.

Hadoop se puede utilizar para analizar datos de secuencias de clics con el objetivo de segmentar a los usuarios y conocer sus preferencias. Los anunciantes también pueden analizar secuencias de clics y registros de impresión de publicidad para ofrecer anuncios más eficaces.

Conozca de qué manera Razorfish usa Hadoop en Amazon EMR para realizar análisis de secuencias de clics

Hadoop se puede utilizar para procesar registros generados por aplicaciones web y móviles. Hadoop le ayuda a transformar petabytes de datos desestructurados o semiestructurados en información útil sobre sus aplicaciones o los usuarios.

Conozca de qué manera Yelp usa Hadoop en Amazon EMR para respaldar características clave del sitio web

 

Las aplicaciones del ecosistema de Hadoop como Hive permiten a los usuarios utilizar Hadoop MapReduce con una interfaz de SQL, lo que facilita el análisis a escala masiva, y el almacenamiento de datos distribuidos tolerante a fallos. Use Hadoop para almacenar sus datos y permita que sus usuarios realicen consultas en datos de cualquier tamaño.

Vea de qué manera Netflix usa Hadoop en Amazon EMR para ejecutar un almacén de datos a escala de petabytes

Hadoop se puede utilizar para procesar grandes volúmenes de datos genómicos y otros conjuntos de datos científicos de gran tamaño de forma rápida y eficiente. AWS puso a disposición de la comunidad los datos del proyecto de los 1000 genomas de forma gratuita.

Más información sobre proyectos de genómica en AWS

 

Dada su escalabilidad masiva y sus costos inferiores, Hadoop es ideal para cargas de trabajo de ETL, como la recopilación, clasificación, reunión y agregación de conjuntos de datos de gran tamaño para una utilización más sencilla por parte de los sistemas de recepción de datos.

Lea cómo Euclid usa Hadoop en Amazon EMR para ETL y agregación de datos