En este documento, se explican los mensajes de error comunes de la creación de clústeres y se brindan sugerencias para solucionar problemas de creación de clústeres.
Mensajes de error comunes de la creación de clústeres
User not authorized to act as service account
Causa: La principal que intenta crear el clúster de Managed Service para Apache Spark no tiene los permisos necesarios para usar la cuenta de servicio especificada. Los usuarios de Managed Service para Apache Spark deben tener el permiso
ActAsde la cuenta de servicio para implementar recursos de Managed Service para Apache Spark. Este permiso se incluye en el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser) (consulta Roles de Managed Service para Apache Spark).Solución: Identifica el usuario o la cuenta de servicio que intenta crear el clúster de Managed Service para Apache Spark. Otorga a esa principal el rol Usuario de cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio que el clúster está configurado para usar (por lo general, la cuenta de servicio de VM de Managed Service para Apache Spark).Operation timed out: Only se ejecutan 0 de cada 2 nodos de datos o nodos mínimos necesarios.
Causa: El nodo del controlador no puede crear el clúster porque no puede comunicarse con los nodos trabajadores.
Solución:
- Verifica las advertencias de las reglas de firewall.
- Asegúrate de que las reglas de firewall correctas estén en su lugar. Para obtener más información, consulta Descripción general de las reglas de firewall predeterminadas de Managed Service para Apache Spark.
- Realiza una prueba de conectividad en la Google Cloud consola para determinar qué está bloqueando la comunicación entre los nodos trabajadores y los del controlador.
Required
compute.subnetworks.usepermission forprojects/{projectId}/regions/{region}/subnetworks/{subnetwork}Causa: Este error puede ocurrir cuando intentas configurar un clúster de Managed Service para Apache Spark mediante una red de VPC en otro proyecto y la cuenta de servicio del agente de servicio de Managed Service para Apache Spark Service Agent no tiene los permisos necesarios. En el proyecto de VPC compartida que aloja la red.
Solución: Sigue los pasos que se indican en Crea un clúster que use una red de VPC en otro proyecto.
La zona
projects/zones/{zone}no tiene suficientes recursos disponibles para completar la solicitud(resource type:compute)Causa: La zona que se usa para crear el clúster no tiene suficientes recursos.
Solución:
Errores de cuota excedida
Cuota insuficiente de CPUS/CPUS_ALL_REGIONS
Cuota insuficiente “DISKS_TOTAL_GB”
Cuota insuficiente “IN_USE_ADDRESSES”Causa: La solicitud de CPU, disco, o dirección IP supera la cuota disponible.
Solución: Solicita una cuota adicional en la Google Cloud consola.
No se pudo realizar la acción de inicialización
Causa: No se pudo instalar la acción de inicialización proporcionada durante la creación del clúster.
Solución:
- Consulta los lineamientos y consideraciones para las acciones de inicialización.
- Examina los registros de resultados. El mensaje de error debe proporcionar un vínculo a los registros en Cloud Storage.
No se pudo inicializar el nodo
CLUSTER-NAME-m. ... Consulta el resultado en:<gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>Causa: No se pudo inicializar el nodo del controlador del clúster de Managed Service para Apache Spark.
Solución:
- Revisa los registros de resultados de la secuencia de comandos de inicio que se enumeran en el mensaje de error
(
gs://PATH_TO_STARTUP_SCRIPT_OUTPUT) y verifica la causa de la inicialización fallida del nodo. - Las causas pueden incluir problemas de configuración de red del clúster de Managed Service para Apache Spark y la instalación fallida de dependencias del paquete de Python.
- Si el problema no se resuelve después de revisar los registros de la secuencia de comandos de inicio, soluciona los problemas del usuario y, luego, vuelve a intentarlo con retirada exponencial. Si el problema persiste, comunícate con la asistencia al cliente de Google Cloud.
- Revisa los registros de resultados de la secuencia de comandos de inicio que se enumeran en el mensaje de error
(
Cluster creation failed: IP address space exhausted
Causa: No está disponible el espacio de direcciones IP necesario para aprovisionar los nodos del clúster solicitados.
Solución:
- Crea un clúster con menos nodos trabajadores, pero con un tipo de máquina más grande.
- Crea un clúster en una subred o red diferente.
- Reduce el uso en la red para liberar espacio de direcciones IP.
- Espera hasta que haya suficiente espacio de IP disponible en la red.
Initialization script error message: The repository REPO_NAME no longer has a Release file
Causa: Se borró el repositorio de backports de Debian oldstable.
Solución:
Agrega el siguiente código antes del código que ejecuta
apt-geten tu secuencia de comandos de inicialización.oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}'); stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}'); matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)" if [[ -n "$matched_files" ]]; then for filename in "$matched_files"; do grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \ sed -i -e 's/^.*-backports.*$//' "$filename" done fiTimeout waiting for instance
DATAPROC_CLUSTER_VM_NAMEto report in o Network is unreachable:dataproccontrol-REGION.googleapis.comCausa: Estos mensajes de error indican que la configuración de red de tu clúster de Managed Service para Apache Spark está incompleta: es posible que te falte la ruta a la puerta de enlace de Internet predeterminada o reglas de firewall.
Solución:
Para solucionar este problema, puedes crear las siguientes pruebas de conectividad:
- Crea una prueba de conectividad entre dos VMs del clúster de Managed Service para Apache Spark. El resultado de esta prueba te ayudará a comprender si las reglas de firewall de permiso de entrada o salida de tu red se aplican correctamente a las VMs del clúster.
- Crea una prueba de conectividad entre una VM del clúster de Managed Service para Apache Spark y una dirección IP actual de la API de control de Managed Service para Apache Spark. Para obtener una dirección IP actual de la API de control de Managed Service para Apache Spark, usa el siguiente comando:
dig dataproccontrol-REGION.googleapis.com A
Usa cualquiera de las direcciones IPv4 en la sección de respuesta del resultado.
El resultado de la prueba de conectividad te ayudará a comprender si la ruta a la puerta de enlace de Internet predeterminada y el firewall de permiso de salida están configurados correctamente.
Según los resultados de las pruebas de conectividad:
- Agrega una ruta a Internet a la red de VPC de tu clúster:
0.0.0.0/0para IPv4 y::/0para IPv6 con--next-hop-gateway=default-internet-gateway. - Agrega reglas de firewall para el control de acceso.
Error debido a una actualización
Causa: El clúster aceptó un trabajo enviado al servicio de Managed Service para Apache Spark, pero no pudo escalar verticalmente o disminuir la escala de forma manual o mediante el ajuste de escala automático. Este error también puede deberse a una configuración de clúster no estándar.
Solución:
Restablecimiento del clúster: Abre un ticket de asistencia, incluye un archivo tar de diagnóstico, y solicita que se restablezca el clúster a un estado RUNNING.
Clúster nuevo: Vuelve a crear el clúster con la misma configuración. Esta solución puede ser más rápida que un restablecimiento proporcionado por la asistencia al cliente.
Sugerencias para solucionar problemas de clústeres
En esta sección, se proporciona orientación adicional para solucionar problemas habituales que pueden impedir la creación de clústeres de Managed Service para Apache Spark.
Cuando no se puede aprovisionar un clúster de Managed Service para Apache Spark, suele producir un mensaje de error genérico o informa un estado PENDING o PROVISIONING antes de fallar. La clave para diagnosticar y resolver problemas de fallas de clústeres es examinar los registros del clúster y evaluar los puntos de falla comunes.
Síntomas comunes
Los siguientes son síntomas comunes asociados con las fallas de creación de clústeres:
- El estado del clúster permanece
PENDINGoPROVISIONINGdurante un período prolongado. - El clúster pasa al estado
ERROR. - Errores genéricos de la API durante la creación del clúster, como
Operation timed out. Mensajes de error registrados o de respuesta de la API, como los siguientes:
RESOURCE_EXHAUSTED: relacionado con las cuotas de CPU, disco o dirección IPInstance failed to startPermission deniedUnable to connect to service_name.googleapis.comoCould not reach required Google APIsConnection refusedonetwork unreachable- Errores relacionados con fallas en las acciones de inicialización, como errores de ejecución de secuencias de comandos y archivos no encontrados
Revisa los registros del clúster
Un paso inicial importante cuando se diagnostican fallas de creación de clústeres es revisar los registros detallados del clúster disponibles en Cloud Logging.
- Ve al Explorador de registros: Abre el Explorador de registros en la Google Cloud consola de.
- Filtra los clústeres de Managed Service para Apache Spark:
- En el menú desplegable Recurso, selecciona
Cloud Managed Service for Apache Spark Cluster. - Ingresa tu
cluster_nameyproject_id. También puedes filtrar porlocation(región).
- En el menú desplegable Recurso, selecciona
- Examina las entradas de registro:
- Busca mensajes de nivel
ERRORoWARNINGque ocurran cerca del momento de la falla de creación del clúster. - Presta atención a los registros de los componentes
master-startup,worker-startupyagentpara obtener información sobre los problemas de la VM o del agente de Managed Service para Apache Spark. - Para obtener información sobre los problemas de tiempo de inicio de la VM,
filtra los registros por
resource.type="gce_instance"y busca mensajes de los nombres de instancia asociados con los nodos del clúster, comoCLUSTER_NAME-moCLUSTER_NAME-w-0. Los registros de la consola en serie pueden revelar problemas de configuración de red, problemas de disco y fallas de secuencias de comandos que ocurren al principio del ciclo de vida de la VM.
- Busca mensajes de nivel
Causas comunes de fallas de clústeres y sugerencias para solucionar problemas
En esta sección, se describen los motivos comunes por los que podría fallar la creación de clústeres de Managed Service para Apache Spark y se brindan sugerencias para solucionar problemas de fallas de clústeres.
Permisos de IAM insuficientes
La cuenta de servicio de VM que usa tu clúster de Managed Service para Apache Spark debe tener los roles de IAM adecuados para aprovisionar instancias de Compute Engine, acceder a buckets de Cloud Storage , escribir registros e interactuar con otros Google Cloud servicios.
- Rol de trabajador obligatorio: Verifica que la cuenta de servicio de VM tenga el
rol de trabajador de Managed Service para Apache Spark (
roles/dataproc.worker). Este rol tiene los permisos mínimos necesarios para que Managed Service para Apache Spark administre los recursos del clúster. - Permisos de acceso a los datos: Si tus trabajos leen o escriben en Cloud Storage o BigQuery, la cuenta de servicio necesita roles relacionados, como
Storage Object Viewer,Storage Object CreatoroStorage Object Adminpara Cloud Storage, oBigQuery Data VieweroBigQuery Editorpara BigQuery. - Permisos de registro: La cuenta de servicio debe tener un rol con los permisos necesarios para escribir registros en Cloud Logging, como el rol
Logging Writer.
Sugerencias para solucionar problemas:
Identifica la cuenta de servicio: Determina la cuenta de servicio de VM que tu clúster está configurado para usar. Si no se especifica, el valor predeterminado es la cuenta de servicio predeterminada de Compute Engine.
Verifica los roles de IAM: Ve a la página IAM y administración > IAM en la Google Cloud consola, busca la cuenta de servicio de VM del clúster y, luego, verifica que tenga los roles necesarios para las operaciones del clúster. Otorga los roles faltantes.
Se superaron las cuotas de recursos
Los clústeres de Managed Service para Apache Spark consumen recursos de Compute Engine y otros Google Cloud servicios. Si se superan las cuotas regionales o del proyecto, se pueden producir fallas en la creación del clúster.
- Cuotas comunes de Managed Service para Apache Spark para verificar:
CPUs(regional)DISKS_TOTAL_GB(regional)IN_USE_ADDRESSES(regional para IPs internas, global para IPs externas)- Cuotas de la API de Dataproc, como
ClusterOperationRequestsPerMinutePerProjectPerRegion
Sugerencias para solucionar problemas:
- Revisa las cuotas: Ve a la página IAM y administración > IAM en la Google Cloud consola de. Filtra por “Servicio” para “API de Compute Engine” y “API de Dataproc”.
- Verifica el uso en comparación con el límite: Identifica las cuotas que están en sus límites o cerca de ellos.
- Si es necesario, solicita un aumento de cuota.
Problemas de configuración de red
Los problemas de configuración de red, como la configuración incorrecta de la red de VPC, la subred, el firewall o el DNS, son una causa común de fallas en la creación de clústeres. Las instancias del clúster deben poder comunicarse entre sí y con las APIs de Google.
- Red de VPC y subred:
- Verifica que la red de VPC y la subred del clúster existan y estén configuradas correctamente.
- Verifica que la subred tenga un rango suficiente de direcciones IP disponibles.
- Acceso privado a Google (PGA): Si las VMs del clúster tienen direcciones IP internas y necesitan llegar a las APIs de Google para Cloud Storage, Cloud Logging y otras operaciones, verifica que el Acceso privado a Google esté habilitado en la subred. De forma predeterminada, los clústeres de Managed Service para Apache Spark creados con versiones de imagen 2.2 o posteriores aprovisionan VMs con direcciones IP solo internas con el Acceso privado a Google habilitado en la subred regional del clúster.
- Private Service Connect
(PSC): Si usas
Private Service Connect para acceder a las
APIs de Google, verifica que los
extremos necesarios de Private Service Connect
estén configurados correctamente para las APIs de Google de las que depende Managed Service para Apache Spark,
como
dataproc.googleapis.com,storage.googleapis.com,compute.googleapis.comylogging.googleapis.com. Las entradas DNS para las APIs deben resolverse en direcciones IP privadas. Ten en cuenta que el uso de Private Service Connect no elimina la necesidad de usar el intercambio de tráfico entre redes de VPC para comunicarse con otras redes de VPC administradas por el cliente. - Intercambio de tráfico entre redes de VPC: Si tu clúster se comunica con recursos en otras redes de VPC, como proyectos host de VPC compartida o otras VPC del cliente, verifica que el intercambio de tráfico entre redes de VPC esté configurado correctamente y que las rutas se propaguen.
Reglas de firewall:
- Reglas predeterminadas: Verifica que las reglas de firewall predeterminadas, como
allow-internaloallow-ssh, no sean demasiado restrictivas. Reglas personalizadas: Si hay reglas de firewall personalizadas, verifica que permitan las rutas de acceso de comunicación necesarias:
- Comunicación interna dentro del clúster (entre nodos -m y -w)
Tráfico saliente de las VMs del clúster a las APIs de Google, con IPs públicas o una puerta de enlace de Internet, Acceso privado a Google o extremos de Private Service Connect
Tráfico a cualquier fuente de datos o servicio externos de los que dependan tus trabajos
- Reglas predeterminadas: Verifica que las reglas de firewall predeterminadas, como
Resolución de DNS: Confirma que las instancias del clúster puedan resolver correctamente los nombres DNS para las APIs de Google y cualquier servicio interno o externo.
Sugerencias para solucionar problemas:
- Revisa la configuración de red: Inspecciona la red de VPC y la configuración de la subred en la que se implementa el clúster.
- Verifica las reglas de firewall: Revisa las reglas de firewall en la red de VPC o el proyecto host de VPC compartida.
- Prueba la conectividad: Inicia una VM temporal de Compute Engine en la subred del clúster y ejecuta los siguientes pasos:
pingocurla dominios externos de la API de Google, comostorage.googleapis.com.nslookuppara verificar la resolución de DNS en las direcciones IP esperadas (Acceso privado a Google o Private Service Connect).- Ejecuta Google Cloud pruebas de conectividad para diagnosticar rutas desde una VM de prueba hasta extremos relevantes.
Fallas en las acciones de inicialización
Las acciones de inicialización de Managed Service para Apache Spark son secuencias de comandos que se ejecutan en las VMs del clúster durante la creación del clúster. Los errores en estas secuencias de comandos pueden impedir el inicio del clúster.
Sugerencias para solucionar problemas:
- Examina los registros en busca de errores en las acciones de inicialización: Busca entradas de registro relacionadas con
init-actionsostartup-scriptpara las instancias del clúster en Cloud Logging. - Verifica las rutas de acceso y los permisos de las secuencias de comandos: Verifica que las secuencias de comandos de acción de inicialización estén ubicadas correctamente en Cloud Storage y que la cuenta de servicio de VM del clúster tenga el rol
Storage Object Viewernecesario para leer las secuencias de comandos de Cloud Storage. - Depura la lógica de la secuencia de comandos: Prueba la lógica de la secuencia de comandos en una VM de Compute Engine independiente que imite el entorno del clúster para identificar errores. Agrega registros detallados a la secuencia de comandos.
Disponibilidad regional de recursos (agotamiento)
En ocasiones, un tipo de máquina o recurso en una región o zona experimenta una falta de disponibilidad temporal (agotamiento). Por lo general, esto genera errores RESOURCE_EXHAUSTED no relacionados con problemas de cuota del proyecto.
Sugerencias para solucionar problemas:
- Prueba con una zona o región diferente: Intenta crear el clúster en una zona diferente dentro de la misma región o en una región diferente.
- Usa la posición de zona automática: Usa la función de posición de zona automática de Managed Service para Apache Spark Auto Zone placement para seleccionar automáticamente una zona con capacidad.
- Ajusta el tipo de máquina: Si usas un tipo de máquina personalizado o especializado, prueba con un tipo de máquina estándar para ver si eso resuelve el problema.
Comunícate con Atención al cliente de Cloud
Si sigues teniendo problemas con las fallas de clústeres, comunícate con Atención al cliente de Cloud. Describe el problema de falla del clúster y los pasos para solucionar problemas que se tomaron. Además, proporciona la siguiente información:
- Datos de diagnóstico del clúster
- Resultado del siguiente comando:
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
- Registros exportados para el clúster con errores
Usa la herramienta gcpdiag
gcpdiag
es una herramienta de código abierto. No es un producto con asistencia oficial Google Cloud .
Puedes usar la herramienta gcpdiag para identificar y solucionar Google Cloud
problemas del proyecto. Para obtener más información, consulta el
proyecto en GitHub.
La herramienta gcpdiag te ayuda a descubrir los siguientes problemas de creación de clústeres de Managed Service para Apache Spark mediante la realización de las siguientes verificaciones:
- Errores de agotamiento: Evalúa los registros del Explorador de registros para descubrir agotamientos en regiones y zonas.
- Cuota insuficiente: Verifica la disponibilidad de cuotas en el proyecto del clúster de Managed Service para Apache Spark.
- Configuración de red incompleta: Realiza pruebas de conectividad de red, incluidas las verificaciones de las reglas de firewall necesarias y la configuración de IP externa e interna. Si se borró el clúster, la herramienta
gcpdiagno puede realizar una verificación de conectividad de red. - Configuración incorrecta entre proyectos: Verifica las cuentas de servicio entre proyectos y revisa los roles adicionales y la aplicación de las políticas de la organización.
- Faltan roles de IAM de la red de nube privada virtual compartida: Si el clúster de Managed Service para Apache Spark usa una red de VPC compartida, verifica la adición de los roles de cuenta de servicio necesarios.
- Fallas en las acciones de inicialización: Evalúa los registros del Explorador de registros para descubrir fallas y tiempos de espera de las secuencias de comandos de acción de inicialización.
Para obtener una lista de los pasos de gcpdiag Dataproc, incluidos los pasos de creación de clústeres, consulta
Pasos de Managed Service para Apache Spark.
Ejecuta el comando gcpdiag
Puedes ejecutar el gcpdiag comando desde Cloud Shell en la
Google Cloud consola o dentro de un contenedor de Docker.
Google Cloud Consola de
- Completa y, luego, copia el siguiente comando.
- Abre la Google Cloud consola de y activa Cloud Shell. Abre la consola de Cloud
- Pega el comando copiado.
- Ejecuta el comando
gcpdiag, que descarga la imagen de Dockergcpdiagy, luego, realiza verificaciones de diagnóstico. Si corresponde, sigue las instrucciones de salida para corregir las verificaciones que fallaron.
gcpdiag runbook managed-spark/cluster-creation \
--parameter project_id=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGSDocker
Puedes
ejecutar gcpdiag con un wrapper que inicie gcpdiag en un
contenedor de Docker. Se debe instalar Docker o
Podman.
- Copia y ejecuta el siguiente comando en tu estación de trabajo local.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
- Ejecuta el comando
gcpdiag../gcpdiag runbook managed-spark/cluster-creation \ --parameter project_id=PROJECT_ID \ --parameter cluster_name=CLUSTER_NAME \ --parameter OPTIONAL_FLAGS
Consulta los parámetros disponibles para este runbook.
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID del proyecto que contiene el recurso.
- CLUSTER_NAME: Es el nombre del clúster de Managed Service para Apache Spark de destino en tu proyecto.
- OPTIONAL_PARAMETERS: Agrega uno o más de los
siguientes parámetros opcionales. Estos parámetros son obligatorios si
se borró el clúster.
cluster_uuid: Es el UUID del clúster de Managed Service para Apache Spark de destino en tu proyecto.service_account: Es la cuenta de servicio de VM del clúster de Managed Service para Apache Spark .subnetwork: Es la ruta de acceso URI completa de la subred del clúster de Managed Service para Apache Spark .internal_ip_only: Verdadero o falsocross_project: Es el ID entre proyectos si el clúster de Managed Service para Apache Spark usa una cuenta de servicio de VM en otro proyecto.
Marcas útiles:
--universe-domain: Si corresponde, el dominio de Trusted Partner Sovereign Cloud que aloja el recurso--parametero-p: Parámetros del runbook
Para obtener una lista y una descripción de todas las marcas de la herramienta gcpdiag, consulta las
gcpdiag instrucciones de uso.
¿Qué sigue?
- Obtén más información sobre las herramientas de supervisión y solución de problemas de Managed Service para Apache Spark.
- Aprende a diagnosticar clústeres de Managed Service para Apache Spark.
- Consulta el documento de preguntas frecuentes de Managed Service para Apache Spark .