Melihat data diagnostik cluster

"Melihat data diagnostik cluster Managed Service untuk Apache Spark"

Anda dapat memanfaatkan fitur pengumpulan data diagnostik Managed Service untuk Apache Spark berikut untuk memecahkan masalah cluster dan tugas:

  • Data diagnostik checkpoint: Secara default, Managed Service untuk Apache Spark mengumpulkan data diagnostik checkpoint selama siklus proses cluster.
  • Data diagnostik snapshot: Anda dapat mengumpulkan snapshot data diagnostik cluster satu kali saat diperlukan.

Pengumpulan data diagnostik checkpoint

Secara default, Managed Service untuk Apache Spark mengumpulkan data diagnostik checkpoint selama operasi pembuatan cluster, update cluster, dan tugas Managed Service untuk Apache Spark.

Lokasi data checkpoint

Managed Service untuk Apache Spark menyimpan data diagnostik checkpoint di bucket sementara cluster di Cloud Storage dalam folder berikut (checkpoint diagnostic data folder):

gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID 

Bucket sementara cluster default memiliki periode retensi TTL selama 90 hari. Data akan dihapus pada akhir periode retensi. Anda dapat menentukan bucket sementara cluster Anda sendiri dengan periode TTL yang berbeda saat Anda membuat cluster.

Data diagnostik checkpoint

  • Log detail node cluster: Managed Service untuk Apache Spark menjalankan perintah berikut untuk mengumpulkan dan menulis informasi YARN dan HDFS ke lokasi berikut di folder data diagnostik checkpoint di Cloud Storage.

    Perintah dijalankan Lokasi di folder diagnostik
    yarn node -list -all .../nodes/timestamp/yarn-nodes.log
    hdfs dfsadmin -report -live -decommissioning .../nodes/timestamp/hdfs-nodes.log
    cp gs://STAGING_BUCKET/google-cloud-dataproc-metainfo/CLUSTER_UUID/nodes_exclude.xml .../nodes/timestamp/nodes_exclude.xml

  • Detail Tugas: Managed Service untuk Apache Spark menyimpan informasi tugas MapReduce dan log tugas Spark untuk tugas yang menggunakan Managed Service untuk Apache Spark Jobs API. Data tugas ini dikumpulkan untuk setiap tugas MapReduce dan Spark yang dikirimkan.

    • job.xml MapReduce: File yang berisi setelan konfigurasi tugas, yang disimpan di .../jobs/JOB_UUID/mapreduce/job.xml.
    • Log peristiwa Spark: Detail eksekusi tugas yang berguna untuk proses debug, disimpan di .../jobs/JOB_UUID/spark/application-id.
  • Informasi sistem Linux: Managed Service untuk Apache Spark menjalankan perintah berikut untuk mengumpulkan dan menyimpan informasi sistem di lokasi berikut dalam folder data diagnostik checkpoint di Cloud Storage.

    Perintah Lokasi di folder diagnostik
    sysctl -a .../system/sysctl.log
    cat /proc/sys/fs/file-nr .../system/fs-file-nr.log
    ping -c 1 .../system/cluster-ping.log
    cp /etc/hosts .../system/hosts_entries.log
    cp /etc/resolv.conf .../system/resolv.conf
  • File konfigurasi: Managed Service untuk Apache Spark menyimpan file konfigurasi berikut di lokasi berikut dalam folder data diagnostik checkpoint di Cloud Storage.

    Item yang disertakan Lokasi di folder diagnostik
    Properti Managed Service untuk Apache Spark .../configs/dataproc/dataproc.properties
    Semua file di
    /etc/google-dataproc/
    .../configs/dataproc/
    Semua file di
    /etc/hadoop/conf/
    .../configs/hadoop/
    Semua file di /etc/hive/conf/ .../configs/hive/
    Semua file di
    /etc/hive-hcatalog/conf/
    .../configs/hive-hcatalog/
    Semua file di /etc/knox/conf/ .../configs/knox/
    Semua file di /etc/pig/conf/ .../configs/pig/
    Semua file di
    /etc/presto/conf/
    .../configs/presto/
    Semua file di
    /etc/spark/conf/
    .../configs/spark/
    Semua file di /etc/tez/conf/ .../configs/tez/
    Semua file di
    /etc/zookeeper/conf/
    .../configs/zookeeper/

Membagikan data diagnostik checkpoint kepada dukungan

Anda dapat mengaktifkan berbagi data diagnostik checkpoint dengan dukunganGoogle Cloud dengan cara berikut:

  • Mengaktifkan berbagi saat pembuatan cluster: Tambahkan properti cluster opsional berikut saat Anda membuat cluster:

    dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
    

    Properti ini otomatis membagikan data diagnostik checkpoint yang dikumpulkan kepada dukunganGoogle Cloud sehingga Anda tidak perlu membagikannya secara manual setiap kali setelah pembuatan cluster.

  • Mengaktifkan berbagi setelah pembuatan cluster: Anda dapat mengaktifkan berbagi data checkpoint dengandukunganGoogle Cloud setelah pembuatan cluster dengan memberikan akses baca ke data checkpoint ke akun layanan yang digunakan oleh dukungan Google Cloud , sebagai berikut:

    • Jika akses level bucket yang seragam diaktifkan di bucket sementara, tambahkan binding kebijakan IAM:

      gcloud storage buckets add-iam-policy-binding gs://TEMP_BUCKET \
          --member=serviceAccount:cloud-diagnose@cloud-dataproc. \
          --role=roles/storage.objectViewer
      

    • Jika kontrol akses tingkat objek diaktifkan di bucket sementara, jalankan perintah berikut untuk membagikan data diagnostik checkpoint:

      gcloud storage objects update \
          gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID \
          --add-acl-grant=entity=user-cloud-diagnose@cloud-dataproc.,role=READER --recursive
      

Menonaktifkan pengumpulan data diagnostik checkpoint

Untuk menonaktifkan pengumpulan data diagnostik checkpoint di cluster, tetapkan dataproc:diagnostic.capture.enabled=false saat Anda membuat cluster.

Pengumpulan data diagnostik snapshot

Anda dapat menjalankan perintah gcloud dataproc clusters diagnose berikut untuk mengumpulkan snapshot data diagnostik dari cluster yang sedang berjalan. Data ditulis sebagai file arsip (tar) ke bucket staging Managed Service untuk Apache Spark di Cloud Storage.

gcloud dataproc clusters diagnose CLUSTER_NAME \
    --region=REGION \
    --tarball-access=GOOGLE_DATAPROC_DIAGNOSE \
    --tarball-gcs-dir=TARBALL_DIR

Catatan:

  • CLUSTER_NAME: Nama cluster yang akan didiagnosis.
  • REGION: Region cluster, misalnya, us-central1.
  • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Flag ini memberikan akses ke file tar diagnostik ke Google Cloud dukungan. Berikan dukungan Google Cloud dengan jalur Cloud Storage dari file tar diagnostik.

    Sebagai alternatif untuk memberikan file tar ke dukungan, Anda dapat memberikan UUID cluster, ID operasi perintah diagnosis, dan lokasi Cloud Storage bucket konfigurasi cluster.

    Jika Anda memilih untuk menulis file tar diagnostik ke direktori tertentu, berikan dukungan Google Cloud dengan jalur Cloud Storage lengkap dari file tar yang dicetak oleh perintah diagnosis.

    Akses bucket dan cakupan konten bersama: Setelan akses pada bucket Cloud Storage yang berisi file tar diagnostik menentukan cakupan konten yang dibagikan ke dukungan Google Cloud :

    • Akses level bucket yang seragam: Jika akses level bucket yang seragam diaktifkan di bucket staging Managed Service untuk Apache Spark atau, jika TARBALL_DIR ditentukan, di bucket yang berisi TARBALL_DIR, semua konten bucket akan dibagikan dengan dukungan Google Cloud .

    • Akses level objek: Jika akses level objek diaktifkan di bucket staging Managed Service untuk Apache Spark atau, jika TARBALL_DIR ditentukan, di bucket yang berisi TARBALL_DIR, hanya file tar diagnostik yang dibagikan dengan dukungan Google Cloud .

  • TARBALL_DIR: Opsional. Anda dapat menggunakan flag ini untuk menentukan direktori Cloud Storage tempat file tar diagnostik akan ditulis. Jika flag ini dihilangkan, file tar diagnostik akan ditulis ke bucket staging Managed Service untuk Apache Spark.

  • Additional flags:

    • --start-time dengan --end-time: Gunakan kedua flag untuk menentukan rentang waktu dalam format %Y-%m-%dT%H:%M:%S.%fZ untuk pengumpulan data diagnostik. Menentukan rentang waktu juga memungkinkan pengumpulan log penskalaan otomatis Managed Service untuk Apache Spark selama rentang waktu tersebut (secara default, log penskalaan otomatis Managed Service untuk Apache Spark tidak dikumpulkan dalam data snapshot diagnostik).

    • Anda dapat menggunakan salah satu atau kedua flag berikut untuk mengumpulkan log output driver tugas, peristiwa Spark, aplikasi YARN, dan Sparklens tertentu:

      • --job-ids: Daftar ID tugas yang dipisahkan koma
      • --yarn-application-ids: Daftar ID aplikasi YARN yang dipisahkan koma

        • Agregasi log YARN harus diaktifkan (yarn.log-aggregation-enable=true) untuk pengumpulan log aplikasi YARN.
        • Untuk tugas MapReduce, hanya log aplikasi YARN yang dikumpulkan.

Opsional: Menjalankan skrip diagnostik

Perintah gcloud dataproc clusters diagnose dapat gagal atau waktu habis jika cluster dalam status error dan tidak dapat menerima tugas diagnosis dari server Managed Service untuk Apache Spark. Sebagai alternatif untuk menjalankan perintah diagnosis, Anda dapat menggunakan SSH untuk terhubung ke cluster, lalu menjalankan skrip secara lokal di node master.

gcloud compute ssh HOSTNAME
gcloud storage cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh

File tar arsip diagnostik disimpan di direktori lokal. Output perintah mencantumkan lokasi file tar dengan petunjuk cara mengupload file tar ke bucket Cloud Storage.

Data ringkasan diagnostik

Data snapshot cluster mencakup ringkasan diagnostik dan beberapa bagian arsip.

Ringkasan diagnostik: File arsip menyertakan summary.txt yang berada di root arsip. Dasbor ini memberikan ringkasan status cluster, termasuk status YARN, HDFS, disk, dan jaringan, serta menyertakan peringatan untuk memberi tahu Anda tentang potensi masalah.

Bagian arsip: File arsip menyertakan informasi berikut yang ditulis ke lokasi file arsip berikut.

  • Informasi daemon dan layanan

    Perintah dijalankan Lokasi di arsip
    yarn node -list -all /system/yarn-nodes.log
    hdfs dfsadmin -report -live -decommissioning /system/hdfs-nodes.log
    hdfs dfs -du -h /system/hdfs-du.log
    service --status-all /system/service.log
    systemctl --type service /system/systemd-services.log
    curl "http://${HOSTNAME}:8088/jmx" /metrics/resource_manager_jmx
    curl "http://${HOSTNAME}:8088/ws/v1/cluster/apps" /metrics/yarn_app_info
    curl "http://${HOSTNAME}:8088/ws/v1/cluster/nodes" /metrics/yarn_node_info
    curl "http://${HOSTNAME}:9870/jmx" /metrics/namenode_jmx

  • Informasi JVM

    Perintah dijalankan Lokasi di arsip
    jstack -l "${DATAPROC_AGENTPID}" jstack/agent${DATAPROC_AGENT_PID}.jstack
    jstack -l "${PRESTOPID}" jstack/agent${PRESTO_PID}.jstack
    jstack -l "${JOB_DRIVERPID}" jstack/driver${JOB_DRIVER_PID}.jstack
    jinfo "${DATAPROC_AGENTPID}" jinfo/agent${DATAPROC_AGENT_PID}.jstack
    jinfo "${PRESTOPID}" jinfo/agent${PRESTO_PID}.jstack
    jinfo "${JOB_DRIVERPID}" jinfo/agent${JOB_DRIVER_PID}.jstack

  • Informasi sistem Linux

    Perintah dijalankan Lokasi di arsip
    df -h /system/df.log
    ps aux /system/ps.log
    free -m /system/free.log
    netstat -anp /system/netstat.log
    sysctl -a /system/sysctl.log
    uptime /system/uptime.log
    cat /proc/sys/fs/file-nr /system/fs-file-nr.log
    ping -c 1 /system/cluster-ping.log

  • File log

    Item disertakan Lokasi di arsip
    Semua log di /var/log dengan awalan berikut dalam nama filenya:
    cloud-sql-proxy
    dataproc
    druid
    gcdp
    google
    hadoop
    hdfs
    hive
    knox
    presto
    spark
    syslog
    yarn
    zookeeper
    File ditempatkan di folder arsip logs, dan mempertahankan nama file aslinya.
    Log startup node Managed Service untuk Apache Spark untuk setiap node (master dan worker) di cluster Anda. File ditempatkan di folder arsip node_startup, yang berisi subfolder terpisah untuk setiap mesin dalam cluster.
    Log gateway komponen dari journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

  • File konfigurasi

    Item yang disertakan Lokasi di arsip
    Metadata VM /conf/dataproc/metadata
    Variabel lingkungan di /etc/environment /conf/dataproc/environment
    Properti Managed Service untuk Apache Spark /conf/dataproc/dataproc.properties
    Semua file di /etc/google-dataproc/ /conf/dataproc/
    Semua file di /etc/hadoop/conf/ /conf/hadoop/
    Semua file di /etc/hive/conf/ /conf/hive/
    Semua file di /etc/hive-hcatalog/conf/ /conf/hive-hcatalog/
    Semua file di /etc/knox/conf/ /conf/knox/
    Semua file di /etc/pig/conf/ /conf/pig/
    Semua file di /etc/presto/conf/ /conf/presto/
    Semua file di /etc/spark/conf/ /conf/spark/
    Semua file di /etc/tez/conf/ /conf/tez/
    Semua file di /etc/zookeeper/conf/ /conf/zookeeper/

Membagikan file arsip

Anda dapat membagikan file arsip kepada dukungan Google Cloud atau pengguna untuk mendapatkan bantuan dalam memecahkan masalah cluster atau tugas.

Untuk membagikan file arsip:

  • Salin file arsip dari Cloud Storage, lalu bagikan arsip yang didownload, atau
  • Ubah izin pada arsip untuk mengizinkan pengguna atau project Google Cloud lain mengakses file.

    Contoh: Perintah berikut memberikan izin baca ke arsip kepada pemilik project test-project:

    gcloud storage objects update PATH_TO_ARCHIVE --add-acl-grant=entity=project-owners-test-project,role=READER