Bagikan melalui


pyspark Memecahkan masalah buku catatan

Penting

Add-on Kluster Big Data Microsoft SQL Server 2019 akan dihentikan. Dukungan untuk Kluster Big Data SQL Server 2019 akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung penuh pada platform dan perangkat lunak akan terus dipertahankan melalui pembaruan kumulatif SQL Server hingga saat itu. Untuk informasi selengkapnya, lihat posting blog pengumuman dan opsi Big data di platform Microsoft SQL Server.

Artikel ini menunjukkan cara memecahkan masalah pyspark buku catatan yang gagal.

Arsitektur pekerjaan PySpark di bawah Azure Data Studio

Azure Data Studio berkomunikasi dengan livy titik akhir di SQL Server Kluster Big Data.

Perintah livy masalah spark-submit titik akhir dalam kluster big data. Setiap spark-submit perintah memiliki parameter yang menentukan YARN sebagai manajer sumber daya kluster.

Untuk memecahkan masalah sesi PySpark Anda secara efisien, Anda akan mengumpulkan dan meninjau log dalam setiap lapisan: Livy, YARN, dan Spark.

Langkah-langkah pemecahan masalah ini mengharuskan Anda memiliki:

  1. Azure Data CLI (azdata) diinstal dan dengan konfigurasi diatur dengan benar ke kluster Anda.
  2. Pemahaman tentang menjalankan perintah Linux dan beberapa keterampilan pemecahan masalah log.

Langkah-langkah pemecahan masalah

  1. Tinjau tumpukan dan pesan kesalahan di pyspark.

    Dapatkan ID aplikasi dari sel pertama di buku catatan. Gunakan ID aplikasi ini untuk menyelidiki livylog , YARN, dan spark. SparkContext menggunakan ID aplikasi YARN ini.

    Sel gagal

  2. Ambil lognya.

    Gunakan azdata bdc debug copy-logs untuk menyelidiki

    Contoh berikut menghubungkan titik akhir kluster big data untuk menyalin log. Perbarui nilai berikut dalam contoh sebelum berjalan.

    • <ip_address>: Titik akhir kluster big data
    • <username>: Nama pengguna kluster big data Anda
    • <namespace>: Namespace Layanan Kubernetes untuk kluster Anda
    • <folder_to_copy_logs>: Jalur folder lokal tempat Anda ingin log Anda disalin
    azdata login --auth basic --username <username> --endpoint https://<ip_address>:30080
    azdata bdc debug copy-logs -n <namespace> -d <folder_to_copy_logs>
    

    Contoh 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.
    
  3. Tinjau log Livy. Log Livy berada di <namespace>\sparkhead-0\hadoop-livy-sparkhistory\supervisor\log.

    • Cari ID aplikasi YARN dari sel pertama notebook pyspark.
    • Cari ERR status.

    Contoh log Livy yang memiliki status YARN ACCEPTED . Livy telah mengirimkan aplikasi benang.

    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>
    
  4. Meninjau YARN UI

    Dapatkan URL titik akhir YARN dari dasbor manajemen kluster big data Azure Data Studio atau jalankan azdata bdc endpoint list –o table.

    Contohnya:

    azdata bdc endpoint list -o table
    

    Mengembalikan

    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
    
  5. Periksa ID aplikasi dan application_master individual dan log kontainer.

    Periksa ID aplikasi

  6. Tinjau log aplikasi YARN.

    Dapatkan log aplikasi untuk aplikasi. Gunakan kubectl untuk menyambungkan ke sparkhead-0 pod, misalnya:

    kubectl exec -it sparkhead-0 -- /bin/bash
    

    Lalu jalankan perintah ini dalam shell tersebut menggunakan sebelah kanan application_id:

    yarn logs -applicationId application_<application_id>
    
  7. Cari kesalahan atau tumpukan.

    Contoh kesalahan izin terhadap hdfs. Di tumpukan java cari 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
    
  8. Tinjau UI SPARK.

    Antarmuka pengguna Spark

    Telusuri paling detail tugas tahapan yang mencari kesalahan.

Langkah berikutnya

Memecahkan masalah integrasi SQL Server Kluster Big Data Active Directory