Versiones de lanzamiento
Amazon Athena para Apache Spark ofrece las siguientes versiones de lanzamiento:
Versión 3 del motor PySpark
La versión 3 de PySpark incluye Apache Spark, versión 3.2.1. Con esta versión, puede ejecutar el código de Spark en los cuadernos integrados en la consola de Athena.
Apache Spark versión 3.5
La versión 3.5 de Apache Spark se basa en Amazon EMR 7.12 e incluye la versión 3.5.6 de Apache Spark. Con esta versión, puede ejecutar el código de Spark desde los cuadernos de Estudio unificado de Amazon SageMaker AI o desde sus clientes compatibles con Spark preferidos. Esta versión añade características clave para ofrecer una experiencia mejorada para las cargas de trabajo interactivas:
-
Secure Spark Connect: añade Spark Connect como punto de conexión de AWS autenticado y autorizado.
-
Atribución de costos a nivel de sesión: los usuarios pueden realizar un seguimiento de los costos por sesión interactiva en los informes de costos y uso o del Explorador de costos de AWS. Para obtener más información, consulte Atribución de costos a nivel de sesión.
-
Capacidades de depuración avanzadas: añade compatibilidad con la interfaz de usuario activa de Spark y el servidor de historial de Spark para depurar cargas de trabajo tanto desde las API como desde los cuadernos. Para obtener más información, consulte Acceso a la interfaz de usuario de Spark.
-
Soporte de acceso sin filtros: accede a las tablas protegidas de AWS Glue Data Catalog en las que dispones de todos los permisos necesarios. Para obtener más información, consulte Uso de Lake Formation con los grupos de trabajo de Athena Spark.
Propiedades predeterminadas de Spark
La siguiente tabla enumera las propiedades de Spark y sus valores predeterminados que se aplican a las sesiones de Athena SparkConnect.
| Key | Valor predeterminado | Descripción |
|---|---|---|
|
|
|
Esto no se puede modificar. |
|
|
|
|
|
|
|
La cantidad de núcleos que utiliza el controlador. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
La cantidad de memoria que utiliza el controlador. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
Cantidad de sobrecarga de memoria asignada a las cargas de trabajo de Python y otros procesos que se ejecutan en el controlador. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
El disco del controlador de Spark. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
El número de núcleos que usa cada ejecutor. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
La cantidad de memoria que utiliza el controlador. |
|
|
|
Cantidad de sobrecarga de memoria asignada a las cargas de trabajo de Python y otros procesos que se ejecutan en el ejecutor. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
El disco ejecutor de Spark. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
Arquitectura del ejecutor. |
|
|
|
Opciones de Java adicionales para el controlador de Spark. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
Opciones de Java adicionales para el ejecutor de Spark. Esto no se puede modificar durante el lanzamiento inicial. |
|
|
|
El número de contenedores de ejecutores de Spark que se asignarán. |
|
|
|
Opción que activa la asignación dinámica de recursos. Esta opción escala o reduce verticalmente el número de ejecutores registrados en la aplicación, en función de la carga de trabajo. |
|
|
|
El límite superior del número de ejecutores si activa la asignación dinámica. |
|
|
|
El límite superior del número de ejecutores si activa la asignación dinámica. |
|
|
|
El número inicial de ejecutores que se ejecutarán si activa la asignación dinámica. |
|
|
|
El tiempo que un ejecutor puede permanecer inactivo antes de que Spark lo elimine. Esto solo se aplica si activa la asignación dinámica. |
|
|
|
La función DRA habilitada requiere que el seguimiento aleatorio esté activado. |
|
|
|
El tiempo de espera define el tiempo que el programador de Spark debe observar una acumulación sostenida de tareas pendientes antes de enviar una solicitud al administrador de clústeres para que lance nuevos ejecutores. |
|
|
|
|
|
|
|
La clase de implementación del metaalmacén de AWS Glue. |
|
|
|
accountId de AWS Glue Catalog. |
|
|
|
La propiedad especifica una lista de prefijos de paquetes separados por comas para las clases que debe cargar el ClassLoader de la aplicación en lugar del ClassLoader aislado creado para el código del cliente de Hive Metastore. |
|
|
|
Define la implementación para que el cliente de S3 utilice S3A. |
|
|
|
Define la implementación para el cliente de S3A (S3A). |
|
|
|
Define la implementación para que el cliente de S3 nativo (S3N) utilice S3A. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esta propiedad habilita un protocolo de confirmación optimizado para los trabajos de Spark al escribir datos en Amazon S3. Si se establece en true, ayuda a Spark a evitar costosas operaciones de cambio de nombre de archivos, lo que se traduce en escrituras atómicas más rápidas y fiables en comparación con el archivador predeterminado de Hadoop. |
|
|
|
Esta configuración establece de forma explícita la región de AWS del bucket de Amazon S3 al que se accede a través del cliente S3A. |
|
|
|
Especifica el tiempo de espera de la conexión del socket en milisegundos. |
|
|
|
Esto habilita el S3A “Magic” Committer, un protocolo de confirmación específico pero de alto rendimiento que depende del soporte del administrador de clústeres subyacente para rutas especiales. |
|
|
|
Únicamente relevante cuando el Magic Committer está activado, especifica si la lista de archivos archivados por una tarea debe guardarse en la memoria en lugar de grabarse en archivos de disco temporales. |
|
|
|
Esta configuración selecciona de forma explícita el algoritmo específico del S3A Output Committer que se va a utilizar (p. ej., directorio, particionado o mágico). Al especificar el nombre, usted elige la estrategia que administra los datos temporales, gestiona los errores de las tareas y realiza la confirmación atómica final con la ruta de Amazon S3 de destino. |
|
|
|
La propiedad permite la compatibilidad con las Concesiones de acceso a Amazon S3 al acceder a los datos de Amazon S3 a través del cliente del sistema de archivos S3A/EMRFS. |
|
|
|
Cuando las Concesiones de acceso a Amazon S3 están habilitadas, esta propiedad controla si el cliente de Amazon S3 debe recurrir a las credenciales de IAM tradicionales si la búsqueda de concesiones de acceso falla o no proporciona permisos suficientes. |
|
|
|
Ruta de Python para el controlador. |
|
|
|
Ruta de Python para el ejecutor. |
|
|
|
Esta configuración controla si Spark utiliza un proceso daemon de trabajo de Python en cada ejecutor. Cuando está habilitado (true, es el valor predeterminado), el ejecutor mantiene al trabajador de Python activo entre tareas para evitar la sobrecarga de iniciar e inicializar repetidamente un nuevo intérprete de Python para cada tarea, lo que mejora significativamente el rendimiento de las aplicaciones de PySpark. |
|
|
|
Permite el uso de Apache Arrow para optimizar la transferencia de datos entre los procesos de JVM y Python en PySpark. |
|
|
|
Propiedad de configuración que controla el comportamiento de Spark cuando se produce un error durante la transferencia de datos entre JVM y Python mediante la optimización de Apache Arrow. |
|
|
|
Propiedad de configuración que controla si Spark utiliza un archivador de archivos optimizado al escribir archivos de Parquet en determinados sistemas de archivos, específicamente en sistemas de almacenamiento en la nube como Amazon S3. |
|
|
|
Propiedad de configuración de Spark que especifica el nombre de clase completo del OutputCommitter de Hadoop que se utilizará al escribir archivos Parquet. |
|
|
|
Esta propiedad controla si el controlador limpia activamente los recursos de la aplicación de Spark asociados a los ejecutores que se ejecutaban en nodos que se eliminaron o vencieron. |
|
|
|
La propiedad permite que la lógica de Spark ponga automáticamente en una lista negra a los ejecutores que el administrador de clústeres está procediendo a su desmantelamiento (apagado controlado). Esto evita que el programador envíe nuevas tareas a los ejecutores que están a punto de salir, lo que mejora la estabilidad laboral durante la reducción vertical de los recursos. |
|
|
|
El tiempo máximo que Spark esperará a que una tarea se migre correctamente de un ejecutor de desmantelamiento antes de incluir el host en una lista negra. |
|
|
|
Indica a Spark que sea indulgente y que no falle ni un intento de fase completa si se produce un error de recuperación al leer datos aleatorios de un ejecutor de desmantelamiento. El error de recuperación se considera recuperable, y Spark volverá a buscar los datos desde una ubicación diferente (es posible que sea necesario volver a calcularlos), por lo que dará prioridad a la finalización del trabajo antes que a la gestión estricta de los errores durante los apagados controlados. |
|
|
|
Esta propiedad suele usarse internamente o en configuraciones específicas de administradores de clústeres para definir la duración máxima total que Spark espera que dure el proceso de desmantelamiento de un host. Si el tiempo real de desmantelamiento supera este umbral, Spark podría tomar medidas agresivas, como incluir el host en una lista negra o solicitar la terminación forzosa, para liberar el recurso. |
|
|
|
Cuando una tarea no consigue recuperar datos de modo aleatorio o RDD de un host específico, si se establece este valor en true, Spark debe anular el registro de todos los bloques de salida asociados a la aplicación que está fallando en ese host. Esto evita que las tareas futuras intenten obtener datos de un host poco fiable, lo que obliga a Spark a volver a calcular los bloques necesarios en otros lugares y aumenta la solidez del trabajo ante problemas de red intermitentes. |