Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Solución de problemas de un
Important
Los clústeres de macrodatos de Microsoft SQL Server 2019 se retiran. La compatibilidad con clústeres de macrodatos de SQL Server 2019 finalizó a partir del 28 de febrero de 2025. Para obtener más información, consulte la entrada de blog del anuncio y las opciones de macrodatos en la plataforma de Microsoft SQL Server.
En este artículo se muestra cómo solucionar problemas de un pyspark portátil que no funciona.
Arquitectura de un trabajo de PySpark en Azure Data Studio
Azure Data Studio se comunica con el livy punto de conexión en clústeres de macrodatos de SQL Server.
El livy punto de conexión emite spark-submit comandos dentro del clúster de macrodatos. Cada spark-submit comando tiene un parámetro que especifica YARN como administrador de recursos de clúster.
Para solucionar problemas de manera eficiente en la sesión de PySpark, recopilará y revisará los registros dentro de cada capa: Livy, YARN y Spark.
Estos pasos de solución de problemas requieren que tenga:
- Cli de datos de Azure (
azdata) instalada y con la configuración establecida correctamente en el clúster. - Familiaridad con la ejecución de comandos de Linux y algunas aptitudes de solución de problemas de registro.
Troubleshooting steps
Revisa la pila y los mensajes de error en
pyspark.Obtenga el identificador de aplicación de la primera celda del cuaderno. Usa este identificador de aplicación para investigar los registros, YARN y Spark.
SparkContextusa este identificador de la aplicación YARN.
Obtenga los registros.
Uso
azdata bdc debug copy-logspara investigarEn el ejemplo siguiente se conecta un punto de conexión de clúster de macrodatos para copiar los registros. Actualice los valores siguientes en el ejemplo antes de ejecutarse.
-
<ip_address>: punto de conexión del clúster de macrodatos -
<username>: nombre de usuario del clúster de macrodatos -
<namespace>: espacio de nombres de Kubernetes para el clúster. -
<folder_to_copy_logs>: la ruta de acceso de la carpeta local en la que desea copiar los registros.
azdata login --auth basic --username <username> --endpoint https://<ip_address>:30080 azdata bdc debug copy-logs -n <namespace> -d <folder_to_copy_logs>Example output
<user>@<server>:~$ azdata bdc debug copy-logs -n <namespace> -d copy_logs Collecting the logs for cluster '<namespace>'. Collecting logs for containers... Creating an archive from logs-tmp/<namespace>. Log files are archived in /home/<user>/copy_logs/debuglogs-<namespace>-YYYYMMDD-HHMMSS.tar.gz. Creating an archive from logs-tmp/dumps. Log files are archived in /home/<user>/copy_logs/debuglogs-<namespace>-YYYYMMDD-HHMMSS-dumps.tar.gz. Collecting the logs for cluster 'kube-system'. Collecting logs for containers... Creating an archive from logs-tmp/kube-system. Log files are archived in /home/<user>/copy_logs/debuglogs-kube-system-YYYYMMDD-HHMMSS.tar.gz. Creating an archive from logs-tmp/dumps. Log files are archived in /home/<user>/copy_logs/debuglogs-kube-system-YYYYMMDD-HHMMSS-dumps.tar.gz.-
Revise los registros de Livy. Los registros de Livy se encuentran en
<namespace>\sparkhead-0\hadoop-livy-sparkhistory\supervisor\log.- Busque el identificador de aplicación de YARN desde la primera celda del cuaderno pyspark.
-
ERRBusque el estado.
Ejemplo de registro de Livy que tiene un
YARN ACCEPTEDestado. Livy ha enviado la solicitud de hilo.HH:MM:SS INFO utils.LineBufferedStream: YYY-MM-DD HH:MM:SS INFO impl.YarnClientImpl: Submitted application application_<application_id> YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: YYY-MM-DD HH:MM:SS INFO yarn.Client: Application report for application_<application_id> (state: ACCEPTED) YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: YYY-MM-DD HH:MM:SS INFO yarn.Client: YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: client token: N/A YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: diagnostics: N/A YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: ApplicationMaster host: N/A YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: ApplicationMaster RPC port: -1 YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: queue: default YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: start time: ############ YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: final status: UNDEFINED YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: tracking URL: https://sparkhead-1.fnbm.corp:8090/proxy/application_<application_id>/ YY/MM/DD HH:MM:SS INFO utils.LineBufferedStream: user: <account>Revisión de la interfaz de usuario de YARN
Obtenga la dirección URL del punto de conexión de YARN desde el panel de administración de clústeres de macrodatos de Azure Data Studio o ejecute
azdata bdc endpoint list –o table.For example:
azdata bdc endpoint list -o tableReturns
Description Endpoint Name Protocol ------------------------------------------------------ ---------------------------------------------------------------- -------------------------- ---------- Gateway to access HDFS files, Spark https://knox.<namespace-value>.local:30443 gateway https Spark Jobs Management and Monitoring Dashboard https://knox.<namespace-value>.local:30443/gateway/default/sparkhistory spark-history https Spark Diagnostics and Monitoring Dashboard https://knox.<namespace-value>.local:30443/gateway/default/yarn yarn-ui https Application Proxy https://proxy.<namespace-value>.local:30778 app-proxy https Management Proxy https://bdcmon.<namespace-value>.local:30777 mgmtproxy https Log Search Dashboard https://bdcmon.<namespace-value>.local:30777/kibana logsui https Metrics Dashboard https://bdcmon.<namespace-value>.local:30777/grafana metricsui https Cluster Management Service https://bdcctl.<namespace-value>.local:30080 controller https SQL Server Master Instance Front-End sqlmaster.<namespace-value>.local,31433 sql-server-master tds SQL Server Master Readable Secondary Replicas sqlsecondary.<namespace-value>.local,31436 sql-server-master-readonly tds HDFS File System Proxy https://knox.<namespace-value>.local:30443/gateway/default/webhdfs/v1 webhdfs https Proxy for running Spark statements, jobs, applications https://knox.<namespace-value>.local:30443/gateway/default/livy/v1 livy httpsCompruebe el ID de la aplicación y los registros individuales de maestro_de_aplicación y de contenedor.
Revise los registros de la aplicación YARN.
Obtenga el registro de la aplicación. Use
kubectlpara conectarse alsparkhead-0pod, por ejemplo:kubectl exec -it sparkhead-0 -- /bin/bashLuego, ejecute este comando dentro de ese shell usando el correcto
application_id:yarn logs -applicationId application_<application_id>Busque errores o apilamientos.
Ejemplo de error de permiso contra hdfs. En la pila de Java, busque
Caused by:YYYY-MM-DD HH:MM:SS,MMM ERROR spark.SparkContext: Error initializing SparkContext. org.apache.hadoop.security.AccessControlException: Permission denied: user=<account>, access=WRITE, inode="/system/spark-events":sph:<bdc-admin>:drwxr-xr-x at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:399) at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:255) at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:193) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1852) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1836) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkAncestorAccess(FSDirectory.java:1795) at org.apache.hadoop.hdfs.server.namenode.FSDirWriteFileOp.resolvePathForStartFile(FSDirWriteFileOp.java:324) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInt(FSNamesystem.java:2504) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileChecked(FSNamesystem.java:2448) Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=<account>, access=WRITE, inode="/system/spark-events":sph:<bdc-admin>:drwxr-xr-xRevise la interfaz de usuario de SPARK.
Investiga en profundidad las tareas de las etapas en busca de errores.
Next steps
Solución de problemas de integración de Active Directory de Clústeres de macrodatos de SQL Server