Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Arquitectura y capas de servicio en Amazon EMR
La arquitectura de servicio de Amazon EMR se compone de varias capas, cada una de las cuales proporciona determinadas capacidades y funcionalidad al clúster. Esta sección proporciona información general sobre las capas y los componentes de cada una de ellas.
En este tema
Almacenamiento
La capa de almacenamiento incluye los diferentes sistemas de archivos que se utilizan con el clúster. Existen varios tipos distintos de opciones de almacenamiento como se indica a continuación.
Sistema de archivos distribuido de Hadoop (HDFS)
Hadoop Distributed File System (HDFS) es un sistema de archivos distribuido y escalable para Hadoop. HDFS distribuye los datos que almacena en instancias en el clúster, almacenando varias copias en datos en distintas instancias para garantizar que no se pierdan datos si una instancia individual falla. HDFS es un almacenamiento efímero que se reclama cuando se termina un clúster. HDFS resulta útil para almacenar en caché los resultados intermedios durante el procesamiento de MapReduce o para cargas de trabajo con una E/S aleatoria notable.
Para obtener más información, consulte Comportamiento y opciones de almacenamiento de instancias en Amazon EMR en esta guía o vaya a la Guía del usuario de HDFS
Sistema de archivos de EMR (EMRFS)
Con el sistema de archivos de EMR (EMRFS), Amazon EMR amplía Hadoop para agregar la posibilidad de tener acceso directamente a los datos almacenados en Amazon S3 como si fueran un sistema de archivos similar a HDFS. Puede usar HDFS o Amazon S3 como sistema de archivos en su clúster. A menudo, Amazon S3 se usa para almacenar los datos de entrada y de salida y los resultados intermedios se almacenan en HDFS.
Sistema de archivos local
El sistema de archivos local se refiere a un disco conectado a nivel local. Cuando se crea un clúster de Hadoop, cada nodo se crea a partir de una instancia de Amazon EC2 que viene con un bloque preconfigurado de almacenamiento en disco preasociado que se denomina almacén de instancias. Los datos en volúmenes del almacén de instancias se conservan solo durante el ciclo de vida de su instancia de Amazon EC2.
Administración de recursos de clúster
La capa de administración de recursos es responsable de la administración de los recursos de clúster y de la programación de trabajos para procesamiento de datos.
De forma predeterminada, Amazon EMR utiliza YARN (Yet Another Resource Negotiator), que es un componente introducido en Apache Hadoop 2.0 para administrar de forma centralizada recursos de clúster para varios marcos de procesamiento de datos. Sin embargo, hay otros marcos y aplicaciones que se ofrecen en Amazon EMR que no utilizan YARN como administrador de recursos. Amazon EMR también dispone de un agente en cada nodo que administra los componentes de YARN, mantiene el clúster en buen estado y se comunica con el servicio de Amazon EMR.
Dado que las instancias de spot se utilizan a menudo para ejecutar nodos de tarea, Amazon EMR tiene una funcionalidad predeterminada para programar trabajos de YARN, de modo que los trabajos en ejecución no presenten errores cuando los nodos de tarea que se ejecutan en las instancias de spot se terminen. Para ello, Amazon EMR permite que los procesos maestros de la aplicación se ejecuten únicamente en los nodos principales. El proceso maestro de la aplicación controla los trabajos en ejecución y debe mantenerse activo durante toda la vida del trabajo.
La versión 5.19.0 y posteriores de Amazon EMR utilizan la característica integrada de etiquetas de nodo YARNyarn-site
y capacity-scheduler
se ajustan de forma predeterminada para que capacity-scheduler y fair-scheduler de YARN utilicen las etiquetas de nodo. Amazon EMR etiqueta automáticamente los nodos principales con la etiqueta CORE
y establece las propiedades para que los maestros de la aplicación se programen únicamente en los nodos con la etiqueta CORE. La modificación manual de las propiedades relacionadas en las clasificaciones de configuración yarn-site y capacity-scheduler o directamente en los archivos XML asociados podría interrumpir esta característica o modificar esta funcionalidad.
Marcos de procesamiento de datos
La capa de marco de trabajo de procesamiento de datos es el motor que se utiliza para procesar y analizar datos. Existen muchos marcos de trabajo disponibles que se ejecutan en YARN o que tienen su propia administración de recursos. Los distintos marcos están disponibles para los diferentes tipos de necesidades de procesamiento tales como lotes, interactivo, en memoria, streaming, etc. El marco de trabajo que elija depende de su caso de uso. Esto afecta a los lenguajes y a los interfaces disponibles desde la capa de aplicación, que es la capa que se utiliza para interactuar con los datos que desea procesar. Los principales marcos de procesamiento disponibles para Amazon EMR son Hadoop MapReduce y Spark.
Hadoop MapReduce
Hadoop MapReduce es un modelo de programación de código abierto para informática distribuida. Simplifica el proceso de escritura de aplicaciones distribuidas en paralelo mediante el tratamiento de toda la lógica, mientras proporciona las funciones Map y Reduce. La función Map asigna datos a conjuntos de pares clave-valor denominados resultados intermedios. La función Reduce combina los resultados intermedios, aplica algoritmos adicionales y genera la salida final. Existen varios marcos de trabajo disponibles para MapReduce, como Hive, que generan automáticamente programas Map y Reduce.
Para obtener más información, consulte Cómo asignar y reducir operaciones que se están llevando a cabo
Apache Spark
Spark es un marco de trabajo de clúster y un modelo de programación para el procesamiento de cargas de trabajo de big data. Al igual que Hadoop MapReduce, Spark es un sistema de procesamiento distribuido de código abierto, pero utiliza gráficos acíclicos dirigidos para planes de ejecución y el almacenamiento de caché en memoria para conjuntos de datos. Cuando se ejecuta Spark en Amazon EMR, es posible utilizar EMRFS para tener acceso directamente a los datos en Amazon S3. Spark admite diversos módulos de consulta interactivos como, por ejemplo, SparkSQL.
Para obtener más información, consulte Apache Spark en clústeres de Amazon EMR en la Guía de publicación de Amazon EMR.
Aplicaciones y programas
Amazon EMR es compatible con muchas aplicaciones, tales como Hive, Pig y la biblioteca Spark Streaming, para ofrecer diversas capacidades, como el uso de lenguajes de nivel superior para crear cargas de trabajo de procesamiento, el uso de algoritmos de machine learning, el desarrollo de aplicaciones de procesamiento de flujos y la creación de almacenamientos de datos. Además, Amazon EMR también admite proyectos de código abierto que tienen su propia funcionalidad de administración de clústeres en lugar de utilizar YARN.
Puede utilizar diversas bibliotecas y lenguajes para interactuar con las aplicaciones que se ejecutan en Amazon EMR. Por ejemplo, puede utilizar Java, Hive o Pig con MapReduce o Spark Streaming, Spark SQL, MLlib y GraphX con Spark.
Para obtener más información, consulte la Guía de publicación de Amazon EMR.