Apache Spark en Amazon EMR

¿Por qué Apache Spark en EMR?

Amazon EMR es el mejor lugar para ejecutar Apache Spark. Puede crear rápida y fácilmente clústeres de Spark administrados con la consola de administración de AWS, la CLI de AWS o la API de Amazon EMR. Además, puede usar las características adicionales de Amazon EMR, que incluyen la conectividad rápida con Amazon S3 mediante el sistema de archivos de Amazon EMR (EMRFS), la integración con el mercado de spot de Amazon EC2, el catálogo de datos de AWS Glue y el escalado administrado por EMR para agregar instancias al clúster o eliminarlas de él. AWS Lake Formation ofrece un control pormenorizado del acceso, mientras que la integración con AWS Step Functions ayuda a organizar las canalizaciones de datos. EMR Studio (versión preliminar) es un entorno de desarrollo integrado (IDE) que facilita a los científicos e ingenieros de datos el desarrollo, la visualización y la corrección de aplicaciones de ingeniería y de ciencia de datos escritas en R, Python, Scala y PySpark. EMR Studio proporciona Jupyter Notebooks completamente administrado y herramientas como Spark UI y YARN Timeline Service para simplificar la depuración. Los cuadernos de EMR facilitan la realización de pruebas y la creación de aplicaciones con Spark. Si así lo prefiere, puede utilizar Apache Zeppelin para crear cuadernos interactivos y colaborativos a fin de analizar los datos con Spark.

Obtenga más información sobre Apache Spark aquí

Características y beneficios

EMR presenta el entorno de ejecución de Amazon EMR para Apache Spark, un entorno de tiempo de ejecución optimizado para el rendimiento de Apache Spark, activado de forma predeterminada en los clústeres de Amazon EMR. El tiempo de ejecución de Amazon EMR para Apache Spark puede ser hasta 3 veces más rápido que los clústeres sin el tiempo de ejecución de EMR y tiene una compatibilidad de API del 100 % con Apache Spark estándar. El aumento de rendimiento permite que las cargas de trabajo se ejecuten con mayor rapidez y que pueda ahorrar en costes informáticos, sin implementar cambios en las aplicaciones.

Al utilizar un motor de ejecución de gráficos acíclicos dirigidos (DAG), Spark puede crear planes de consultas eficaces para transformaciones de datos. Spark también almacena datos de entrada, de salida e intermedios en la memoria como marcos de datos, lo que facilita un procesamiento rápido sin costos de E/S y mejora el rendimiento de cargas de trabajo iterativas o interactivas.

Apache Spark dispone de compatibilidad nativa con Java, Scala, SQL y Python, con lo que dispone de diversos lenguajes para crear sus aplicaciones. Además, puede enviar consultas SQL o HiveQL a través del módulo Spark SQL. Además de ejecutar aplicaciones, puede usar la API de Spark de forma interactiva con Python o Scala directamente en el shell de Spark o mediante EMR Studio o los cuadernos de Jupyter en su clúster. La compatibilidad con Apache Hadoop 3.0 en EMR 6.0 permite usar contenedores de Docker para simplificar la administración de las dependencias. También puede aprovechar los cuadernos de EMR independientes del clúster (basados en Jupyter) o usar Zeppelin para crear cuadernos interactivos y colaborativos para la exploración y visualización de datos. Puede ajustar y depurar cargas de trabajo en la consola de EMR, que tiene un servidor de historial de Spark persistente fuera del clúster.

Apache Spark incluye varias bibliotecas para ayudar a crear aplicaciones de aprendizaje automático (MLlib), procesamiento de transmisiones (Spark Streaming) y procesamiento de gráficos (GraphX). Estas bibliotecas se integran a la perfección con el ecosistema de Spark y se pueden utilizar tal y como están para diversos casos de uso. Además, puede usar marcos de aprendizaje profundo, como Apache MXNet, con sus aplicaciones de Spark. La integración con AWS Step Functions le permite agregar automatización y orquestación de flujos de trabajo sin servidor en sus aplicaciones.

Envíe trabajos de Apache Spark con la API Step de EMR, utilice Spark con EMRFS para acceder directamente a los datos de S3, ahorre costos con la capacidad de spot de EC2, use el escalado administrado por EMR para agregar y eliminar capacidad de forma dinámica y lance clústeres transitorios o de larga duración en función de su carga de trabajo. También puede configurar de forma sencilla en Spark el cifrado y la autenticación con Kerberos mediante una configuración de seguridad de EMR. Además, puede usar el Catálogo de datos de AWS Glue para almacenar metadatos de tablas Spark SQL o utilizar Amazon SageMaker con sus canalizaciones de machine learning de Spark. EMR instala y administra Spark en Hadoop YARN, y puede añadir otras aplicaciones de big data a su clúster. EMR con Apache Hudi le permite administrar la captura de datos modificados (CDC) de una manera más eficiente y lo ayuda a cumplir regulaciones de privacidad, como GDPR y CCPA, mediante la simplificación de la eliminación de registros. Haga clic aquí para obtener más información sobre las características de EMR.

Casos de uso

Reciba y procese datos en tiempo real de Amazon Kinesis, Apache Kafka u otras secuencias de datos con Spark Streaming en EMR. Realice el análisis de las transmisiones de forma tolerante a errores y escriba los resultados en S3 o HDFS en clúster.

Apache Spark en EMR incluye MLlib para ofrecer una variedad de algoritmos de aprendizaje automático escalables; también puede usar bibliotecas propias. Al almacenar conjuntos de datos en la memoria durante un trabajo, Spark ofrece un desempeño excelente en consultas iterativas comunes en cargas de trabajo de aprendizaje automático. Puede mejorar las capacidades de Amazon SageMaker conectando la instancia del bloc de notas a un clúster de Apache Spark que se ejecuta en Amazon EMR, con Amazon SageMaker Spark para entrenar y alojar modelos fácilmente.

Use Spark SQL para consultas interactivas de baja latencia con SQL o HiveQL. Spark en EMR puede usar EMRFS, de forma que disponga de acceso ad hoc a sus conjuntos de datos en S3. Además, puede utilizar EMR Studio, EMR Notebooks, bloc de notas de Zeppelin o herramientas de inteligencia empresarial a través de conexiones ODBC y JDBC.

Historias de éxito de los clientes

  • Yelp

    El equipo de publicidad de Yelp realiza modelos de predicción para determinar las probabilidades de que un usuario interactúe con un anuncio. Al usar Apache Spark en Amazon EMR para procesar grandes cantidades de datos y perfilar los modelos de aprendizaje automático, Yelp incrementó sus ingresos y la tasa de clics en los anuncios.

  • The Washington Post

    The Washington Post usa Apache Spark en Amazon EMR para crear modelos que potencian el motor de recomendaciones de su sitio web para incrementar la participación y satisfacción de los lectores. Utilizan la conectividad de alto rendimiento de Amazon EMR con Amazon S3 para actualizar los modelos casi en tiempo real.

  • Krux

    Como parte de su plataforma de administración de datos de información de los clientes, Krux ejecuta cargas de trabajo de aprendizaje automático y procesamiento general con Apache Spark. Krux utiliza clústeres de Amazon EMR de corta duración con la capacidad de spot de Amazon EC2 para ahorrar costos, además de Amazon S3 con EMRFS como capa de datos de Apache Spark.

    Leer más »
  • GumGum

    GumGum, una plataforma de publicidad en pantalla y en imagen, usa Spark en Amazon EMR para predecir inventarios, procesar los registros de secuencias de clics y realizar análisis específicos de datos no estructurados en Amazon S3. Las mejoras en el desempeño que facilita Spark han permitido a GumGum ahorrar tiempo y dinero en estas cargas de trabajo.

    Leer más »
  • Hearst Corporation

    Hearst Corporation, una compañía diversificada de medios e información de gran tamaño, cuenta con clientes que ven contenido de más de 200 propiedades en la web. Gracias a Apache Spark Streaming en Amazon EMR, el personal editorial de Hearst puede observar en tiempo real los artículos que tienen buena aceptación y los temas que son tendencia.

    Leer más »
  • CrowdStrike

    CrowdStrike proporciona protección de puntos de enlace para evitar el acceso no autorizado. Utiliza Amazon EMR con Spark para procesar cientos de terabytes de datos de eventos y convertirlos en descripciones de comportamiento de alto nivel en los hosts. A partir de esos datos, CrowdStrike puede reunir datos de eventos y detectar la presencia de actividad maliciosa.

    Leer más »