Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Probleme mit einem
Important
Die Big Data Cluster von Microsoft SQL Server 2019 werden eingestellt. Der Support für SQL Server 2019 Big Data Cluster endete am 28. Februar 2025. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und den Big Data-Optionen auf der Microsoft SQL Server-Plattform.
In diesem Artikel wird die Problembehandlung für ein pyspark Notizbuch veranschaulicht, das fehlschlägt.
Architektur eines PySpark-Auftrags unter Azure Data Studio
Azure Data Studio kommuniziert mit dem livy Endpunkt in SQL Server Big Data Clustern.
Der livy Endpunkt gibt spark-submit Befehle im Big Data-Cluster aus. Jeder spark-submit Befehl verfügt über einen Parameter, der YARN als Clusterressourcen-Manager angibt.
Um Ihre PySpark-Sitzung effizient zu fehlerbeheben, sammeln und überprüfen Sie Protokolle auf jeder Ebene: Livy, YARN und Spark.
Für diese Schritte zur Problembehandlung ist erforderlich, dass Sie Folgendes haben:
- Azure Data CLI (
azdata) installiert und korrekt für Ihren Cluster konfiguriert. - Vertrautheit mit dem Ausführen von Linux-Befehlen und einigen Fähigkeiten zur Protokollbehandlung.
Troubleshooting steps
Überprüfen Sie den Aufrufstapel und die Fehlermeldungen in der
pyspark.Rufen Sie die Anwendungs-ID aus der ersten Zelle im Notizbuch ab. Verwenden Sie diese Anwendungs-ID, um die
livy-, YARN- und Spark-Protokolle zu untersuchen.SparkContextverwendet diese YARN-Anwendungs-ID.
Holen Sie die Logdateien.
Benutzen
azdata bdc debug copy-logszum UntersuchenIm folgenden Beispiel wird der Verbindungspunkt eines Big Data-Clusters verwendet, um die Protokolle zu kopieren. Aktualisieren Sie die folgenden Werte im Beispiel, bevor es ausgeführt wird.
-
<ip_address>: Big Data Cluster-Endpunkt -
<username>: Ihr Benutzername des Big Data-Clusters -
<namespace>: Der Kubernetes-Namespace für Ihren Cluster -
<folder_to_copy_logs>: Der pfad des lokalen Ordners, in den Die Protokolle kopiert werden sollen
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.-
Überprüfen Sie die Livy-Protokolle. Die Livy Protokolle befinden sich bei
<namespace>\sparkhead-0\hadoop-livy-sparkhistory\supervisor\log.- Suchen Sie nach der YARN-Anwendungs-ID aus der ersten Zelle des Pyspark-Notizbuchs.
- Suchen Sie nach dem
ERRStatus.
Beispiel für Livy-Protokoll, das einen
YARN ACCEPTEDZustand hat. Livy hat den Antrag für Garn eingereicht.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>Überprüfen der YARN-Benutzeroberfläche
Rufen Sie die YARN-Endpunkt-URL aus dem Azure Data Studio Big Data Cluster-Verwaltungsdashboard ab, oder führen Sie
azdata bdc endpoint list –o tableaus.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 httpsÜberprüfen Sie die Anwendungs-ID und einzelne application_master- und Containerprotokolle.
Überprüfen Sie die YARN-Anwendungsprotokolle.
Abrufen des Anwendungsprotokolls für die App. Verwenden Sie
kubectl, um eine Verbindung mit demsparkhead-0-Pod herzustellen, z. B.:kubectl exec -it sparkhead-0 -- /bin/bashFühren Sie dann diesen Befehl in der Shell mit dem richtigen
application_idaus.yarn logs -applicationId application_<application_id>Suchen Sie nach Fehlern oder Stapeln.
Beispiel für Berechtigungsfehler bei hdfs. Suchen Sie im Java-Stapel nach dem
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-xÜberprüfen Sie die SPARK-Benutzeroberfläche.
Analysieren Sie die Aufgaben in den Phasen, um nach Fehlern zu suchen.
Next steps
Problembehandlung bei der Integration von SQL Server-Big Data-Clustern in Active Directory