Para mejorar la eficiencia de una aplicación Spark, es esencial monitorear su rendimiento y comportamiento. En esta publicación, demostramos cómo publicar métricas detalladas de Spark desde EMR de Amazon a Reloj en la nube de Amazon. Esto le brindará la capacidad de identificar cuellos de botella y al mismo tiempo optimizar la utilización de recursos.
CloudWatch proporciona una solución de monitoreo sólida, escalable y rentable para recursos y aplicaciones de AWS, con poderosas opciones de personalización e integración perfecta con otros servicios de AWS. De forma predeterminada, Amazon EMR envía métricas básicas a CloudWatch para realizar un seguimiento de la actividad y el estado de un clúster. El sistema de métricas configurable de Spark permite recopilar métricas en una variedad de receptores, incluidos archivos HTTP, JMX y CSV, pero se requiere una configuración adicional para permitir que Spark publique métricas en CloudWatch.
Resumen de la solución
Esta solución incluye la configuración de Spark para enviar métricas a un receptor personalizado. El receptor personalizado recopila solo las métricas definidas en un archivo Metricfilter.json. Utiliza el agente de CloudWatch para publicar las métricas en un espacio de nombres personalizado de Cloudwatch. El script de acción de arranque incluido es responsable de instalar y configurar el agente de CloudWatch y la biblioteca de métricas en el Nube informática elástica de Amazon (Amazon EC2) Instancias EMR. Un panel de CloudWatch puede proporcionar información instantánea sobre el rendimiento de una aplicación.
El siguiente diagrama ilustra la arquitectura y el flujo de trabajo de la solución.
El flujo de trabajo incluye los siguientes pasos:
- Los usuarios inician un trabajo de Spark EMR, creando un paso en el clúster de EMR. Con Apache Spark, la carga de trabajo se distribuye entre los diferentes nodos del clúster EMR.
- En cada nodo (instancia EC2) del clúster, una biblioteca Spark captura y envía datos de métricas a un agente de CloudWatch, que agrega los datos de métricas antes de enviarlos a CloudWatch. cada 30 segundos.
- Los usuarios pueden ver las métricas accediendo al espacio de nombres personalizado en la consola de CloudWatch.
Proporcionamos un Formación en la nube de AWS plantilla en esta publicación como guía general. La plantilla muestra cómo configurar un agente de CloudWatch en Amazon EMR para enviar métricas de Spark a CloudWatch. Puede revisarlo y personalizarlo según sea necesario para incluir sus configuraciones de seguridad de Amazon EMR. Como práctica recomendada, recomendamos incluir sus configuraciones de seguridad de Amazon EMR en la plantilla para cifrar datos en tránsito.
También debe tener en cuenta que algunos de los recursos implementados por esta pila generan costos cuando permanecen en uso. Además, Métricas de RME no incurra en costos de CloudWatch. Sin embargo, las métricas personalizadas generan cargos según el precio de las métricas de CloudWatch. Para más información, ver Precios de Amazon Cloud Watch.
En las siguientes secciones, vamos a través de los siguientes pasos:
- Cree y cargue la biblioteca de métricas, el script de instalación y la definición de filtro en un Servicio de almacenamiento simple de Amazon (Amazon S3) cubo.
- Utilice la plantilla de CloudFormation para crear los siguientes recursos:
- Supervise las métricas de Spark en la consola de CloudWatch.
Requisitos previos
Esta publicación asume que tienes lo siguiente:
- An Cuenta de AWS.
- Un depósito de S3 para almacenar el script de arranque, la biblioteca y la definición de filtro de métricas.
- Una VPC creada en Nube privada virtual de Amazon (Amazon VPC), donde se lanzará su clúster EMR.
- Roles de servicio de IAM predeterminados para permisos de Amazon EMR para servicios y recursos de AWS. Puede crear estos roles con el comando aws emr create-default-roles en el Interfaz de línea de comandos de AWS (CLI de AWS).
- Un par de claves EC2 opcional, si planea conectarse a su clúster a través de SSH en lugar de Gestor de sesiones, una capacidad de Gerente de sistemas de AWS.
Definir las métricas requeridas
Para evitar enviar datos innecesarios a CloudWatch, nuestra solución implementa un filtro de métricas. Revisa el Documentación de chispa para familiarizarse con los espacios de nombres y sus métricas asociadas. Determine qué métricas son relevantes para su aplicación específica y sus objetivos de rendimiento. Diferentes aplicaciones pueden requerir diferentes métricas para monitorear, según la carga de trabajo, los requisitos de procesamiento de datos y los objetivos de optimización. Los nombres de las métricas que desea monitorear deben definirse en el archivo Metricfilter.json, junto con sus espacios de nombres asociados.
Hemos creado una definición de ejemplo de Metricfilter.json, que incluye la captura de métricas relacionadas con E/S de datos, recolección de basura, presión de memoria y CPU, y métricas de tareas, etapas y trabajos de Spark.
Tenga en cuenta que ciertas métricas no están disponibles en todas las versiones de Spark (por ejemplo, appStatus se introdujo en Spark 3.0).
Cree y cargue los archivos necesarios en un depósito de S3
Para más información, consulte la Cargando objetos y Instalación y ejecución del agente de CloudWatch en sus servidores.
Para crear y cargar el script de arranque, complete los siguientes pasos:
- En la consola de Amazon S3, elija su depósito S3.
- En Objetos pestaña, elegir Subir.
- Elige Añadir archivos, luego elige el Filtrométrico.json, instalador.shy ejemplojob.sh archivos.
- Además, cargue el
emr-custom-cw-sink-0.0.1.jar
archivo de biblioteca de métricas que corresponde a la versión de lanzamiento de Amazon EMR que utilizará: - Elige Subiry tome nota de los URI de S3 para los archivos.
Aprovisione recursos con la plantilla de CloudFormation
Elige Pila de lanzamiento para lanzar una pila de CloudFormation en su cuenta e implementar la plantilla:
Esta plantilla crea una función de IAM, un perfil de instancia de IAM, un clúster de EMR y un panel de CloudWatch. El cluster inicia un básico Aplicación de ejemplo de Spark. Se le facturarán los recursos de AWS utilizados si crea una pila a partir de esta plantilla.
El asistente de CloudFormation le pedirá que modifique o proporcione estos parámetros:
- Tipo de instancia - El tipo de instancia para todos los grupos de instancias. El valor predeterminado es m5.2xlarge.
- InstanciaCountCore – El número de instancias en el grupo de instancias principal. El valor predeterminado es 4.
- EMRRReleaseLabel - El Etiqueta de lanzamiento de Amazon EMR quieres usar. El valor predeterminado es emr-6.9.0.
- BootstrapScriptRuta – La ruta S3 del script de arranque de instalación installer.sh que copió anteriormente.
- Ruta del filtro métrico – La ruta S3 de su definición de Metricfilter.json que copió anteriormente.
- MétricasBibliotecaRuta – La ruta S3 de su biblioteca CloudWatch emr-custom-cw-sink-0.0.1.jar que copió anteriormente.
- Espacio de nombres CloudWatch – El nombre del espacio de nombres personalizado de CloudWatch que se utilizará.
- Ruta de aplicación SparkDemo – La ruta S3 de su script examplejob.sh que copió anteriormente.
- Subred – La subred de EC2 donde se inicia el clúster. Debe proporcionar este parámetro.
- Nombre del par de claves EC2 – Un par de claves EC2 opcional para conectarse a los nodos del clúster, como alternativa al Administrador de sesiones.
Ver las métricas
Una vez que la pila de CloudFormation se implementa correctamente, el trabajo de ejemplo se inicia automáticamente y tarda aproximadamente 15 minutos en completarse. En la consola de CloudWatch, elija Cuadros de mando en el panel de navegación. Luego filtre la lista por el prefijo SparkMonitoring.
El panel de ejemplo incluye información sobre el clúster y una descripción general de los trabajos, etapas y tareas de Spark. Las métricas también están disponibles en un espacio de nombres personalizado que comienza con EMRCustomSparkCloudWatchSink
.
También se incluyen memoria, CPU, E/S y métricas de distribución de tareas adicionales.
Finalmente, las métricas detalladas de recolección de basura de Java están disponibles por ejecutor.
Limpiar
Para evitar cargos futuros en su cuenta, elimine los recursos que creó en este tutorial. El clúster EMR incurrirá en cargos mientras esté activo, así que deténgalo cuando haya terminado. Complete los siguientes pasos:
- En la consola de CloudFormation, en el panel de navegación, elija Stacks.
- Elija la pila que lanzó (
EMR-CloudWatch-Demo
), entonces escoge Borrar. - Vaciar el cubo S3 tu creaste
- Eliminar el cubo S3 tu creaste
Conclusión
Ahora que ha completado los pasos de este tutorial, el agente de CloudWatch se está ejecutando en los hosts de su clúster y está configurado para enviar métricas de Spark a CloudWatch. Con esta característica, puede monitorear de manera efectiva el estado y el rendimiento de sus trabajos de Spark que se ejecutan en Amazon EMR, detectando problemas críticos en tiempo real e identificando las causas raíz rápidamente.
Puede empaquetar e implementar esta solución a través de una plantilla de CloudFormation como esta plantilla de ejemplo, que crea la función de perfil de instancia de IAM, el panel de CloudWatch y el clúster de EMR. El código fuente de la biblioteca está disponible en GitHub para la personalización.
Para ir más allá, considere utilizar estas métricas en las alarmas de CloudWatch. Podrías recolectarlos con otras alarmas en un alarma compuesta o configurar acciones de alarma como el envío Servicio de notificación simple de Amazon (Amazon SNS) notificaciones para desencadenar procesos basados en eventos como AWS Lambda funciones.
Sobre la autora
Le Clue Lubbe es ingeniero principal en AWS. Trabaja con nuestros clientes empresariales más grandes para resolver algunos de sus problemas técnicos más complejos. Impulsa soluciones amplias a través de la innovación para impactar y mejorar la vida de nuestros clientes.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Automoción / vehículos eléctricos, Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- ChartPrime. Eleve su juego comercial con ChartPrime. Accede Aquí.
- Desplazamientos de bloque. Modernización de la propiedad de compensaciones ambientales. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :es
- :no
- :dónde
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- capacidad
- el acceso
- Mi Cuenta
- familiarizado
- a través de
- la columna Acción
- acciones
- lector activo
- actividad
- Adicionales
- Adicionalmente
- Agente
- alarma
- Todos
- permite
- a lo largo de
- también
- alternativa
- Amazon
- Amazon EC2
- EMR de Amazon
- Amazon Web Services
- an
- y
- APACHE
- Apache Spark
- Aplicación
- aplicaciones
- aproximadamente
- arquitectónico
- arquitectura
- somos
- AS
- asociado
- asume
- At
- autor
- automáticamente
- Hoy Disponibles
- evitar
- conscientes
- AWS
- basado
- básica
- BE
- antes
- MEJOR
- Bootstrap
- general
- pero
- by
- PUEDEN
- capacidad
- capturas
- Capturando
- causas
- a ciertos
- cargos
- Elige
- Médico
- código
- recoger
- --
- colecciona
- completar
- Completado
- integraciones
- Calcular
- Configuración
- configurado
- Contacto
- Conectándote
- Considerar
- Consola
- Core
- corresponde
- rentable
- Precio
- podría
- CPU
- Para crear
- creado
- crea
- Creamos
- crítico
- personalizado
- Clientes
- personalización
- personalizan
- página de información de sus operaciones
- datos
- proceso de datos
- Predeterminado
- se define
- definición
- demostrar
- demuestra
- Dependiente
- desplegar
- desplegado
- despliega
- detallado
- Determinar
- una experiencia diferente
- distribuidos
- hecho
- No
- unidades
- cada una
- Más temprano
- de manera eficaz
- eficiencia
- habilitar
- ingeniero
- Empresa
- clientes empresariales
- esencial
- Éter (ETH)
- ejemplo
- Feature
- Archive
- archivos
- filtrar
- siguiendo
- Desde
- funciones
- promover
- futuras
- General
- obtener
- Donar
- Go
- Goals
- Grupo procesos
- Grupo
- guía
- Tienen
- he
- Salud
- anfitriones
- Cómo
- Como Hacer
- Sin embargo
- HTML
- http
- HTTPS
- AMI
- Identifique
- identificar
- if
- ilustra
- ilustrando
- Impacto
- implementos
- mejorar
- in
- incluir
- incluido
- incluye
- Incluye
- información
- Innovation
- penetración
- instalación
- instalando
- ejemplo
- instantáneo
- integración
- dentro
- Introducido
- cuestiones
- IT
- SUS
- Java
- Trabajos
- Empleo
- json
- Clave
- mayor
- lanzamiento
- lanzado
- pone en marcha
- Biblioteca
- Vida
- como
- línea
- Lista
- Largo
- gerente
- Puede..
- Salud Cerebral
- métrico
- Métrica
- minutos
- modificar
- Monitorear
- monitoreo
- más,
- MEJOR DE TU
- debe
- nombre
- nombres
- Navegación
- Next
- nodo
- nodos
- nota
- .
- notificaciones
- número
- ,
- of
- on
- , solamente
- optimización
- optimizando
- Opciones
- or
- Otro
- nuestros
- visión de conjunto
- paquete
- par
- cristal
- parámetro
- parámetros
- camino
- para
- actuación
- permisos
- plan
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- retrato
- Publicación
- poderoso
- presión
- cotización
- Director de la escuela
- privada
- problemas
- en costes
- tratamiento
- Mi Perfil
- proporcionar
- proporciona un
- publicar
- Push
- empuja
- Emprendedor
- con rapidez
- más bien
- real
- en tiempo real
- recomiendan
- relacionado
- ,
- permanecer
- exigir
- Requisitos
- Requisitos
- Recurso
- utilización de recursos
- Recursos
- responsable
- una estrategia SEO para aparecer en las búsquedas de Google.
- robusto
- Función
- También soy miembro del cuerpo docente de World Extreme Medicine (WEM) y embajadora europea de igualdad para The Transformational Travel Council (TTC). En mi tiempo libre, soy una incansable aventurera, escaladora, patrona de día, buceadora y defensora de la igualdad de género en el deporte y la aventura. En XNUMX, fundé Almas Libres, una ONG nacida para involucrar, educar y empoderar a mujeres y niñas a través del deporte urbano, la cultura y la tecnología.
- raíz
- correr
- escalable
- sin costura
- Sección
- (secciones)
- EN LINEA
- ver
- envío
- enviando
- envía
- de coches
- Servicios
- Sesión
- tienes
- sencillos
- So
- a medida
- Soluciones
- RESOLVER
- algo
- Fuente
- código fuente
- Spark
- soluciones y
- montón
- Etapa
- etapas
- comienzo
- Comience a
- comienza
- paso
- pasos
- Detener
- STORAGE
- subred
- Con éxito
- tal
- RESUMEN
- te
- Todas las funciones a su disposición
- ¡Prepárate!
- toma
- Tarea
- tareas
- Técnico
- plantilla
- que
- esa
- La
- La Fuente
- su
- Les
- luego
- Estas
- ellos
- así
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- a
- seguir
- detonante
- bajo
- utilizan el
- usado
- usando
- utiliza
- variedad
- versión
- Ver
- Virtual
- tutorial
- quieres
- fue
- we
- web
- servicios web
- cuando
- que
- mientras
- seguirá
- flujo de trabajo
- funciona
- X
- yaml
- Usted
- tú
- zephyrnet