Amazon EMR le premite aprovisionar con rapidez y facilidad toda la capacidad que necesite, y agregar o eliminar capacidad de forma automática o manual. Es muy útil si cuenta con requisitos de procesamiento impredecibles o variables. Por ejemplo, si el grueso del procesado se produce por la noche, puede que necesite 100 instancias durante el día y 500 por la noche. De forma alternativa, puede que necesite una gran capacidad durante un breve periodo de tiempo. Con Amazon EMR, puede aprovisionar rápidamente cientos o miles de instancias, escalar automáticamente para satisfacer los requisitos de capacidad informática y eliminar el clúster cuando se complete el trabajo (para evitar pagar por una capacidad inactiva).

Introducción a Amazon EMR

Cree una cuenta gratuita

¿Necesita ayuda? ¡Pregúntenos!

elastic

Existen dos opciones principales para agregar o eliminar capacidad:

Implementar varios clústeres: si necesita más capacidad, puede lanzar fácilmente un nuevo clúster y finalizarlo cuando deje de necesitarlo. No existe ningún límite en cuanto al número de clústeres que puede tener. Puede que quiera utilizar varios clústeres si tiene varios usuarios o aplicaciones. Por ejemplo, puede almacenar los datos de entrada en Amazon S3 y lanzar un clúster por cada aplicación que necesite procesar los datos. Se puede optimizar un clúster para la CPU, otro para el almacenamiento, etc.

Adaptación del tamaño de un clúster en ejecución: con Amazon EMR, es fácil escalar automáticamente o cambiar el tamaño manualmente de un clúster en ejecución. Quizás desee ampliar un clúster para agregar más potencia de procesamiento de forma temporal, o reducir el clúster para ahorrar costos cuando tenga capacidad inactiva. Por ejemplo, algunos clientes agregan cientos de instancias a sus clústeres cuando se produce el procesamiento por lotes y eliminan las instancias adicionales cuando este se completa. Al agregar intsancias al clúster, EMR puede empezar a utilizar la capacidad aprovisionada en cuanto esté disponible. Cuando reduzca la escala, EMR elegirá de manera proactiva nodos inactivos para reducir el impacto en las tareas en ejecución.

Amazon EMR está diseñado para reducir el costo del procesamiento de grandes volúmenes de datos. Algunas de las características que permiten que tenga un costo reducido son los precios por segundo, la integración con las instancias de subasta de Amazon EC2, la integración con las instancias reservadas de Amazon EC2, la elasticidad y la integración con Amazon S3.

Precios bajos por segundo: los precios de Amazon EMR se aplican por segundo con un mínimo de un minuto y comienzan con 0,15 USD por hora de instancia en el caso de las instancias pequeñas (131,40 USD al año). Consulte la sección de precios para obtener más detalles.

Integración de subasta de Amazon EC2: las instancias de subasta de Amazon EC2 permiten elegir su propio precio para la capacidad de Amazon EC2. Puede especificar el precio máximo por hora que está dispuesto a pagar por ejecutar un tipo de instancia determinado. Siempre que el precio ofrecido supere el precio de subasta del mercado, mantendrá las instancias y, normalmente, pagará una parte del precio bajo demanda. El precio de subasta varía según la oferta y la demanda de las instancias, pero nunca pagará más del precio máximo que haya especificado. Amazon EMR facilita el uso de instancias de subasta para que pueda ahorrar tiempo y dinero. Los clústeres de Amazon EMR incluyen “nodos principales” que ejecutan HDFS y “nodos de tarea” que no lo hacen. Los nodos de tarea son perfectos para las instancias de subasta porque, si el precio de subasta aumenta y pierde esas instancias, no perderá los datos almacenados en HDFS. (Más información sobre los nodos de tarea y los centrales).

Integración de instancias reservadas de Amazon EC2: las instancias reservadas de Amazon EC2 le permiten mantener las ventajas de la informática elástica y, al mismo tiempo, reducir los costos y reservar capacidad. Con las instancias reservadas, el usuario realiza un modesto pago por única vez y, a cambio, recibe un importante descuento en el cargo por segundo de dicha instancia. Amazon EMR facilita el uso de instancias reservadas para que pueda ahorrar hasta un 65% en el precio bajo demanda.

Elasticidad: como Amazon EMR facilita el escalado automático de su clúster, no tendrá que aprovisionar capacidad de sobra. Por ejemplo, puede que no sepa cuántos datos administrarán los clústeres en seis meses o puede que tenga necesidades de procesamiento variables. Con Amazon EMR no tendrá que adivinar los requisitos futuros ni realizar aprovisionamientos para las demandas máximas, ya que puede agregar/eliminar capacidad fácilmente y en cualquier momento.

Integración de Amazon S3: El sistema de archivos EMR (EMRFS) permite que los clústeres EMR utilicen Amazon S3 como almacenamiento de objetos para Hadoop de manera segura y eficaz. Puede almacenar sus datos en Amazon S3 y utilizar varios clústeres de Amazon EMR para procesar el mismo conjunto de datos. Puede optimizar cada clúster para una carga de trabajo en especial, lo que puede ser más eficiente que disponer de un solo clúster para varias cargas de trabajo con requisitos diferentes. Por ejemplo, puede que tenga un clúster optimizado para la E/S y otro para la CPU y que cada uno procese el mismo conjunto de datos en Amazon S3. Además, al almacenar los datos de entrada y de salida en Amazon S3, puede cerrar clústeres cuando no sean necesarios. 

EMRFS ofrece un alto desempeño en operaciones de lectura y escritura en Amazon S3, soporta cifrado en el lado del servidor de S3 y en el lado del cliente de S3 mediante AWS Key Management Service (KMS) o con claves administradas por el cliente, y contiene una función opcional de vista de consistencia que comprueba la consistencia de lista y lectura tras escritura de objetos cuyo seguimiento se realiza en los metadatos. Además, los clústeres ERM de Amazon son compatibles tanto con EMRFS como con HDFS, lo que elimina la necesidad de elegir entre el almacenamiento en clústeres y Amazon S3.

Integración con el catálogo de datos de AWS Glue: puede usar el catálogo de datos de AWS Glue Data Catalog como repositorio de metadatos administrado para almacenar metadatos de tablas externas para Apache Spark y Apache Hive. Además, ofrece el descubrimiento de esquemas automático y un historial de las versiones de los esquemas. Eso le permite continuar enviando metadatos con facilidad a sus tablas externas en Amazon S3 fuera de su clúster.

Con Amazon EMR puede aprovechar varios almacenes de datos, incluidos Amazon S3, Hadoop Distributed File System (HDFS) y Amazon DynamoDB.

DetailsPage_EMR-Diagram

Amazon S3: Amazon S3 es un servicio de almacenamiento de gran duración, escalable, seguro, rápido y económico de Amazon. Gracias al sistema de archivos EMR (EMRFS), Amazon EMR puede utilizar Amazon S3 como almacenamiento de objetos para Hadoop de manera segura y eficaz. Amazon EMR ha realizado numerosas mejoras en Hadoop para que pueda procesar grandes cantidades de datos almacenados en Amazon S3 sin problemas. Además, EMRFS permite habilitar una vista sistemática que permite la comprobación de la coherencia de la lista y de la lectura después de la escritura de los objetos incluidos en Amazon S3.  EMRFS soporta cifrado en el lado del servidor de Amazon S3 y en el lado del cliente de Amazon S3 para procesar objetos cifrados de Amazon S3, y puede utilizar AWS Key Management Service (KMS) o un proveedor de claves personalizadas.

Al lanzar el clúster, Amazon EMR transfiere los datos de Amazon S3 a cada instancia del clúster y empieza a procesarlos inmediatamente. Una ventaja del almacenamiento de los datos en Amazon S3 y su procesado con Amazon EMR es que puede utilizar varios clústeres para procesar los mismos datos. Por ejemplo, podría disponer de un clúster de desarrollo de Hive optimizado para la memoria y un clúster de producción de Pig optimizado para la CPU que utilicen el mismo conjunto de datos de entrada.

Hadoop Distributed File System (HDFS): HDFS es el sistema de archivos de Hadoop. La topología actual de Amazon EMR agrupa sus instancias en tres grupos lógicos: el grupo Master, que ejecuta YARN Resource Manager y el servicio HDFS Name Node; el grupo Core, que ejecuta el daemon HDFS DataNode y el servicio YARN Node Manager; y el grupo Task, que ejecuta el servicio YARN Node Manager. Amazon EMR instala HDFS en el almacenamiento asociado a las instancias del grupo Core.  

Cada instancia EC2 incluye una cantidad fija de almacenamiento denominada "almacén de instancias" y adjunta a la instancia. También puede personalizar el almacenamiento de una instancia agregándole volúmenes de Amazon EBS. Amazon EMR permite agregar los tipos de volumen General (SSD), Aprovisionado (SSD) y Magnético. Los volúmenes EBS agregados a un clúster EMR no persisten tras el apagado del mismo. EMR limpia automáticamente los volúmenes una vez termina el clúster.

También puede habilitar el cifrado completo para HDFS con una configuración de seguridad de Amazon EMR o crear manualmente zonas de cifrado HDFS con el servidor de administración de claves de Hadoop

Amazon DynamoDB: Amazon DynamoDB es un servicio de base de datos NoSQL rápido y completamente administrado. Amazon EMR cuenta con una integración directa con Amazon DynamoDB para que pueda procesar datos almacenados en Amazon DynamoDB de forma rápida y eficiente, y transferir datos entre Amazon DynamoDB, Amazon S3 y HDFS en Amazon EMR.

Otros almacenes de datos de AWS: los clientes de Amazon EMR también utilizan Amazon Relational Database Service (un servicio web que facilita el establecimiento, el funcionamiento y el escalado de bases de datos relacionales en la nube), Amazon Glacier (un servicio de almacenamiento con un costo extremadamente bajo que ofrece un almacenamiento seguro y duradero para los backup y el archivado de los datos) y Amazon Redshift (un servicio de almacén de datos con escalado de petabyte, rápido y completamente administrado). AWS Data Pipeline es un servicio web que ayuda a los clientes a procesar datos y a transferirlos de manera fiable entre diferentes servicios de almacenamiento e informática de AWS (como Amazon EMR), así como entre fuentes de datos on-premise en intervalos especificados.

Amazon EMR soporta herramientas de Hadoop potentes y probadas, como Hive, Pig, HBase e Impala. Asimismo, puede ejecutar marcos de informática distribuida junto con Hadoop MapReduce, como Spark o Presto, mediante el uso de acciones de arranque. También puede usar Hue y Zeppelin como interfaces de usuario gráficas para interactuar con aplicaciones de su clúster.

Hive es un almacén de datos y paquete de análisis de código abierto que se ejecuta por encima de Hadoop. Hive funciona gracias a Hive QL, un lenguaje basado en SQL que permite que los usuarios estructuren, resuman y consulten datos. Hive QL es más que el SQL estándar, ya que incluye una soporte excelente con funciones map/reduce y tipos de datos complejos y ampliables definidos por el usuario, como JSON y Thrift. Esta capacidad permite procesar fuentes de datos complejas y desestructuradas, como documentos de texto y logs. Hive permite que los usuarios agreguen sus propias extensiones a través de funciones definidas por el usuario escritas en Java. Amazon EMR ha efectuado numerosas mejoras en Hive, incluida la integración directa con Amazon DynamoDB y Amazon S3. Por ejemplo, con Amazon EMR puede cargar particiones de tabla automáticamente desde Amazon S3, puede escribir datos en tablas de Amazon S3 sin usar archivos temporales y puede obtener acceso a recursos de Amazon S3, como scripts para operaciones map/reduce personalizadas y bibliotecas adicionales. Obtenga más información sobre Hive y Amazon EMR.

Pig es un paquete de análisis de código abierto que se ejecuta por encima de Hadoop. Pig funciona gracias a Pig Latin, un lenguaje parecido a SQL que permite que los usuarios estructuren, resuman y consulten datos. Como sucede con las operaciones de estilo SQL, Pig Latin también incluye un soporte excepcional para las funciones map/reduce y los tipos de datos complejos y ampliables definidos por el usuario. Esta capacidad permite procesar fuentes de datos complejas y desestructuradas, como documentos de texto y archivos de log. Pig permite las extensiones de usuario a través de funciones definidas por el usuario escritas en Java. Amazon EMR ha efectuado numerosas mejoras en Pig, incluida la capacidad de utilizar varios sistemas de archivos (normalmente, Pig solo puede obtener acceso a un solo sistema de archivos remoto), la capacidad de cargar scripts y JAR de clientes desde Amazon S3 (por ejemplo, “REGISTER s3:///my-bucket/piggybank.jar”) y funcionalidades adicionales para el procesamiento de cadenas y DateTime. Obtenga más información sobre Pig y Amazon EMR.

HBase es una base de datos distribuida, no relacional y de código abierto que tiene como modelo BigTable, de Google. Se desarrolló como parte del proyecto Hadoop de la Apache Software Foundation y se ejecuta sobre el Hadoop Distributed File System (HDFS) para ofrecer capacidades estilo BigTable para Hadoop. HBase ofrece una forma eficiente y a prueba de fallos para almacenar grandes cantidades de datos dispersos con almacenamiento y compresión basada en columnas. Además, HBase proporciona una búsqueda rápida de datos, ya que almacena en caché datos en memoria. HBase se ha optimizado para las operaciones de escritura secuencial y es muy eficiente para las eliminaciones, actualizaciones e inserciones por lotes. HBase trabaja sin problemas con Hadoop al compartir su sistema de archivos y servir como entrada y salida directa para los trabajos de Hadoop. HBase también se integra con Apache Hive, lo que permite las consultas tipo SQL en tablas de HBase, las uniones con tablas basadas en Hive y el soporte para Java Database Connectivity (JDBC). Con Amazon EMR, puede usar Amazon S3 como almacén de datos para Apache HBase, lo que le permite reducir los costos y la complejidad operativa. Si utiliza HDFS como almacén de datos, puede crear backups de HBase en Amazon S3 y restaurar a partir de un backup creado anteriormente. Obtenga más información sobre HBase y Amazon EMR.

Phoenix brinda capacidades de transacciones SQL con ACID de baja latencia con datos almacenados en Apache HBase. Puede crear índices secundarios con facilidad para incrementar el desempeño y crear vistas distintas de la misma tabla HBase subyacente. Obtenga más información sobre Phoenix en Amazon EMR.

Impala es una herramienta de código abierto del ecosistema Hadoop para la generación de consultas interactivas y ad hoc mediante una sintaxis SQL. En lugar de utilizar MapReduce, aprovecha un motor de procesamiento masivo en paralelo (MPP) como el que existe en los sistemas de administración de bases de datos relacionales (RDBMS) tradicionales.  Obtenga más información sobre Impala y Amazon EMR.

Hue es una interfaz de usuario de código abierto para Hadoop que facilita la ejecución y el desarrollo de consultas de Hive, la administración de archivos en HDFS, la ejecución y desarrollo de scripts de Pig y la administración de tablas. Hue en Amazon EMR también se integra con Amazon S3, lo que permite realizar consultas directamente en Amazon S3 y transferir archivos fácilmente entre HDFS y Amazon S3. Obtenga más información sobre Hue y Amazon EMR.

Spark es un motor en el ecosistema de Hadoop para el procesamiento rápido de conjuntos de datos de gran tamaño. Utiliza conjuntos de datos distribuidos resistentes (RDD) tolerantes a errores en la memoria y gráficos acíclicos dirigidos (DAG) para definir las transformaciones de los datos. Spark también incluye Spark SQL, Spark Streaming, MLlib y GraphX. Obtenga más información sobre Spark en Amazon EMR.

Presto es un motor de consultas SQL distribuidas de código abierto optimizado para análisis de datos ad hoc de baja latencia. Es compatible con el estándar ANSI SQL, incluidas las consultas complejas, las agregaciones, las uniones y las funciones de ventana. Presto puede procesar datos procedentes de diversas fuentes de datos, incluidas Hadoop Distributed File System (HDFS) y Amazon S3. Obtenga más información sobre Spark en Amazon EMR.

Zeppelin es una interfaz de usuario gráfica de código abierto que crea cuadernos interactivos y colaborativos para la exploración de datos mediante Spark. Puede usar Scala, Python, SQL (mediante Spark SQL) o HiveQL para manipular datos y visualizar rápidamente los resultados. Los cuadernos de Zeppelin se pueden compartir entre varios usuarios y las visualizaciones se pueden publicar en paneles externos. Obtenga más información sobre Spark en Amazon EMR.

Oozie es un programador de flujos de trabajo para Hadoop en el que puede crear gráficos acíclicos dirigidos (DAG) de acciones. También puede activar fácilmente sus flujos de trabajo Hadoop por acciones o por tiempo. Obtenga más información sobre Spark en Amazon EMR.

Tez es un marco de ejecución en Hadoop YARN que ofrece un desempeño rápido a partir de planes de consultas optimizados y administración de recursos mejorada. Puede usar Tez con Apache Hive y Apache Pig en lugar de Hadoop MapReduce, y puede visualizar planes de ejecución con la UI de Tez. Obtenga más información sobre Tez en Amazon EMR.

Flink es un motor de flujo de datos de streaming que facilita la ejecución del procesamiento de transmisiones en tiempo real en fuentes de datos de alto desempeño. Admite la semántica de hora de evento para eventos de fuera de servicio, la semántica de solo una vez, el control de la contrapresión y las API optimizadas para la escritura de aplicaciones de lotes y streaming. Más información sobre Flink en EMR.

Otros: Amazon EMR también admite una gran variedad de aplicaciones y herramientas conocidas, como R, Apache MXNet (aprendizaje profundo), Mahout (aprendizaje automático), Ganglia (monitorización), Accumulo (base de datos NoSQL segura), Sqoop (conector de bases de datos relacionales), HCatalog (administración de almacenamiento y tablas), entre otras. El equipo de Amazon EMR dispone de un almacén de código abierto de acciones de arranque que se puede utilizar para instalar software adicional, configurar su clúster o a modo de ejemplo para escribir sus propias acciones de arranque.

Ajuste del clúster: puede elegir qué tipos de instancia EC2 aprovisiona en su clúster (estándar, alta memoria, CPU alta, E/S alta, etc.) en función de los requisitos de su aplicación. Dispone de acceso raíz a todas las instancias y puede personalizar por completo el clúster para que se adapte a sus requisitos. Obtenga más información sobre los tipos de instancia EC2 admitidos.

Depuración de aplicaciones: cuando habilita la depuración en un clúster, Amazon EMR archiva los archivos de log en Amazon S3 y luego los indexa. A continuación, puede usar una interfaz gráfica en la consola para buscar los logs y ver el historial de logs de una manera intuitiva. Obtenga más información sobre la depuración de trabajos de Amazon EMR.

Monitorización del clúster: puede utilizar Amazon CloudWatch para monitorizar 23 métricas personalizadas de Amazon EMR, como el número medio de tareas map/reduce en ejecución. También puede establecer alarmas para estas métricas. Obtenga más información sobre la monitorización de clústeres de Amazon EMR.

Respuesta a eventos: puede utilizar los tipos de evento de Amazon EMR en Amazon CloudWatch Events para responder a los cambios de estado en los clústeres de Amazon EMR. Mediante el uso de reglas sencillas puede configurar rápidamente, hacer coincidir eventos y redirigirlos a temas de Amazon SNS, funciones de AWS Lambda, colas de Amazon SQS y otros. Obtenga más información sobre los eventos en los clústeres de Amazon EMR.

Programación de flujos de trabajo recurrentes: puede utilizar AWS Data Pipeline para programar flujos de trabajo recurrentes que involucren a Amazon EMR. AWS Data Pipeline es un servicio web pensado para ayudarle a procesar datos y a transferirlos, de manera fiable y a intervalos definidos, entre diferentes servicios de almacenamiento y computación de AWS, así como entre fuentes de datos on-premise. Obtenga más información sobre EMR y Data Pipeline.

Cascading: Cascading es una biblioteca de Java de código abierto que ofrece una API de consulta, un planificador de consultas y un programador de trabajos para crear y ejecutar aplicaciones de Hadoop MapReduce. Las aplicaciones desarrolladas con Cascading se compilan y empaquetan en archivos JAR estándar compatibles con Hadoop, de forma parecida a otras aplicaciones nativas de Hadoop. Obtenga más información sobre Cascading y Amazon EMR.

Aprendizaje profundo: utilice marcos de aprendizaje profundo conocidos, como Apache MXNet, para definir, entrenar e implementar redes neuronales profundas. Puede utilizar estos marcos en clústeres de Amazon EMR con instancias GPU. Obtenga más información sobre MXNet en Amazon EMR.

Control del acceso de red al clúster: puede lanzar el clúster en Amazon Virtual Private Cloud (VPC), una sección aislada de la nube de AWS de forma lógica. Puede controlar todos los aspectos del entorno de redes virtual, incluida la selección de su propio rango de direcciones IP, la creación de subredes y la configuración de tablas de ruteo y gateways de red. Obtenga más información sobre Amazon EMR y Amazon VPC.

Administrar usuarios, permisos y cifrado: puede utilizar las herramientas de AWS Identity & Access Management (IAM), como las funciones y los usuarios de IAM, para controlar el acceso y los permisos. Por ejemplo, puede otorgar permisos de lectura a unos usuarios, pero no de escritura, para sus clústeres. Además, puede utilizar las configuraciones de seguridad de Amazon EMR para definir diversas opciones de cifrado en reposo y en tránsito, incluido el cifrado de Amazon S3 y la autenticación con KerberosObtenga más información sobre el control del acceso a su clúster y sobre las opciones de cifrado de Amazon EMR.

Instalar software adicional: puede utilizar acciones de arranque o una imagen de máquina de Amazon (AMI) personalizada con Amazon Linux para instalar software adicional en su clúster. Las acciones de arranque son scripts que se ejecutan en los nodos del clúster cuando Amazon EMR lanza el clúster. Se ejecutan antes de que se inicie Hadoop y antes de que el nodo empiece a procesar datos. También puede cargar con anterioridad y utilizar software en una AMI con Amazon Linux personalizada. Obtenga más información acerca de las acciones de arranque de Amazon EMR y las AMI con Amazon Linux personalizadas.

Copiado eficiente de datos: puede mover rápidamente grandes cantidades de datos desde Amazon S3 a HDFS, desde HDFS a Amazon S3 y entre buckets de Amazon S3 con S3DistCp de Amazon EMR, una extensión de la herramienta de código abierto Distcp que utiliza MapReduce para mover grandes cantidades de datos de forma eficiente. Obtenga más información sobre S3DistCp.

Hadoop Streaming: Hadoop Streaming es una utilizad de Hadoop que permite desarrollar ejecutables de MapReduce en lenguajes diferentes a Java. El streaming se implementa en forma de archivo JAR. Obtenga más información sobre Hadoop Streaming en Amazon EMR.

JAR personalizado: escriba un programa de Java, compílelo para la versión de Hadoop que quiera utilizar y cárguelo en Amazon S3. Luego podrá enviar trabajos de Hadoop al clúster con la interfaz de Hadoop JobClient. Obtenga más información sobre el procesado de JAR personalizado con Amazon EMR.

Se puede utilizar Amazon EMR con una gran variedad de herramientas de software de terceros, como las siguientes:

Transferencia de datos

Monitorización

Ajuste del desempeño

IDE gráfico

Distribución de Hadoop

BI/visualización

Business Intelligence

Exploración de datos

BI/visualización

IDE gráfico

BI/visualización