Melihat data diagnostik cluster Dataproc

"Lihat data diagnostik cluster Dataproc"

Dataproc mengumpulkan data diagnostik cluster berikut untuk membantu Anda memecahkan masalah cluster dan tugas:

Data checkpoint

Saat fitur data checkpoint diaktifkan, Dataproc akan mengumpulkan data diagnostik selama pembuatan cluster, update cluster, dan operasi Jobs API Dataproc. Dataproc menyimpan data di cluster temp bucket di Cloud Storage, yang memiliki periode retensi TTL 90 hari. Data akan dihapus pada akhir periode retensi.

Aktifkan properti pengumpulan data: Anda dapat menyertakan properti cluster opsional berikut saat membuat cluster. Perubahan ini hanya memengaruhi pengumpulan data diagnostik checkpoint di cluster yang dibuat.

  • Mengaktifkan pengumpulan data: Menetapkan properti dataproc:diagnostic.capture.enabled=true akan mengaktifkan pengumpulan data diagnostik checkpoint di cluster.
  • Bagikan data diagnostik: Menetapkan properti dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE untuk membagikan data diagnostik checkpoint yang dikumpulkan dengan dukunganGoogle Cloud .
    • Setelah pembuatan cluster, Anda dapat membagikan data diagnostik ke dukungan Google Cloud dengan memberikan akses baca ke data ke akun layanan yang digunakan oleh dukungan Google Cloud , sebagai berikut:
      gsutil -m acl ch -r -u \
          cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com:R \
          gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
      

Data diagnostik

Data diagnostik terdiri dari data berikut yang ditulis ke gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID/ di Cloud Storage. Lokasi ini disebut sebagai folder data diagnostik di bagian ini.

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

    Perintah dieksekusi Lokasi di folder diagnostik
    yarn node -list -all .../nodes/timestamp/yarn-nodes.log
    hdfs dfsadmin -report -live -decommissioning .../nodes/timestamp/hdfs-nodes.log

  • Detail Tugas: Dataproc menyimpan informasi tugas MapReduce dan log tugas Spark untuk tugas yang menggunakan Dataproc Jobs API. Data tugas ini dikumpulkan untuk setiap tugas MR dan spark yang dikirimkan.

    • MapReduce job.xml: File yang berisi setelan konfigurasi tugas, 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: Dataproc menjalankan perintah berikut untuk mengumpulkan dan menyimpan informasi sistem di lokasi berikut dalam folder data diagnostik 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: Dataproc menyimpan file konfigurasi berikut di lokasi berikut dalam folder data diagnostik di Cloud Storage.

    Item yang disertakan Lokasi di folder diagnostik
    Properti Dataproc .../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/

Data 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 Dataproc di Cloud Storage.

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

Catatan:

  • CLUSTER_NAME: Nama cluster yang akan didiagnosis.
  • REGION: Region cluster, misalnya, us-central1.
  • OPTIONAL FLAGS:

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

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

        • --job-ids: Daftar ID tugas yang dipisahkan koma.

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

    • --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 Dataproc selama rentang waktu tersebut (secara default, log penskalaan otomatis Dataproc tidak dikumpulkan dalam data snapshot diagnostik).

    • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Gunakan tanda ini untuk mengirimkan atau memberikan akses ke file tar diagnostik ke Google Cloud dukungan. Berikan juga informasi ke Google Cloud dukungan sebagai berikut:

      • Jalur Cloud Storage file tar diagnostik atau
      • Bucket konfigurasi cluster, UUID cluster, dan ID operasi perintah diagnose

Jika perlu, jalankan skrip diagnostik

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

gcloud compute ssh HOSTNAME
gsutil 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. Halaman 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 logs arsip, dan mempertahankan nama file aslinya.
    Log startup node Dataproc untuk setiap node (master dan pekerja) di cluster Anda. File ditempatkan di folder node_startup arsip, 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 Dataproc /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 Google Cloud dukungan atau pengguna untuk mendapatkan bantuan guna 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 menambahkan izin baca ke arsip di test-project:

    gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}