צפייה בנתוני אבחון של אשכול

‫"View Managed Service for Apache Spark cluster diagnostic data" (צפייה בנתוני אבחון של אשכול Managed Service for Apache Spark)

כדי לפתור בעיות באשכולות ובעבודות, אפשר להשתמש בתכונות הבאות של איסוף נתוני אבחון ב-Managed Service for Apache Spark:

איסוף נתוני אבחון של נקודות ביקורת

כברירת מחדל, Managed Service for Apache Spark אוסף נתוני אבחון של נקודות ביקורת במהלך יצירת אשכול, עדכון אשכול ופעולות של משימות ב-Managed Service for Apache Spark.

מיקום הנתונים של נקודת הביקורת

ב-Managed Service for Apache Spark נשמרים נתוני אבחון של נקודות ביקורת במאגר הזמני של האשכול ב-Cloud Storage בתיקייה הבאה (checkpoint diagnostic data folder):

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

משך הזמן לשמירת נתונים (TTL) של מאגר זמני של אשכולות שמוגדר כברירת מחדל הוא 90 ימים. הנתונים נמחקים בסוף תקופת השמירה. כשיוצרים אשכול, אפשר לציין קטגוריית טמפ' משלכם לאשכול עם תקופת TTL שונה.

נתוני אבחון של נקודת ביקורת

  • יומנים עם פרטים על צומת האשכול: השירות המנוהל ל-Apache Spark מריץ את הפקודות הבאות כדי לאסוף ולכתוב מידע על YARN ו-HDFS במיקומים הבאים בתיקיית נתוני האבחון של נקודת הבדיקה ב-Cloud Storage.

    הפקודה בוצעה המיקום בתיקיית האבחון
    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

  • פרטי המשימה: שירות מנוהל ל-Apache Spark שומר מידע על משימות MapReduce ויומני משימות Spark למשימות שמשתמשות ב-Managed Service for Apache Spark Jobs API. נתוני המשימות האלה נאספים עבור כל משימת MapReduce ו-Spark שנשלחת.

    • ‫MapReduce job.xml: קובץ שמכיל את הגדרות התצורה של העבודה, שנשמר במיקום .../jobs/JOB_UUID/mapreduce/job.xml.
    • יומני אירועים של Spark: פרטים על הרצת המשימה שימושיים לניפוי באגים, נשמרו במיקום .../jobs/JOB_UUID/spark/application-id.
  • פרטי מערכת Linux: Managed Service for Apache Spark מריץ את הפקודות הבאות כדי לאסוף ולשמור פרטי מערכת במיקומים הבאים בתיקיית נתוני האבחון של נקודת הבדיקה ב-Cloud Storage.

    Command המיקום בתיקיית האבחון
    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
  • קבצי הגדרות: השירות המנוהל של Apache Spark שומר את קובצי ההגדרות הבאים במיקומים הבאים בתיקיית נתוני האבחון של נקודת הבדיקה ב-Cloud Storage.

    הפריטים שנכללים המיקום בתיקיית האבחון
    מאפיינים של Managed Service for Apache Spark .../configs/managed-spark/dataproc.properties
    כל הקבצים ב-
    /etc/google-managed-spark/
    .../configs/managed-spark/
    כל הקבצים ב-
    /etc/hadoop/conf/
    .../configs/hadoop/
    כל הקבצים ב-/etc/hive/conf/ .../configs/hive/
    כל הקבצים ב-
    /etc/hive-hcatalog/conf/
    .../configs/hive-hcatalog/
    כל הקבצים ב-/etc/knox/conf/ .../configs/knox/
    כל הקבצים ב-/etc/pig/conf/ .../configs/pig/
    כל הקבצים ב-
    /etc/presto/conf/
    .../configs/presto/
    כל הקבצים ב-
    /etc/spark/conf/
    .../configs/spark/
    כל הקבצים ב-/etc/tez/conf/ .../configs/tez/
    כל הקבצים ב-
    /etc/zookeeper/conf/
    .../configs/zookeeper/

שיתוף נתוני אבחון של נקודת ביקורת עם התמיכה

אפשר להפעיל את השיתוף של נתוני האבחון של נקודות הבדיקה עם Google Cloud התמיכה בדרכים הבאות:

  • הפעלת שיתוף בזמן יצירת האשכול: מוסיפים את מאפיין האשכול האופציונלי הבא כשיוצרים אשכול:

    dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
    

    בנכס הזה, נתוני האבחון של נקודות הבדיקה שנאספו משותפים באופן אוטומטי עם Google Cloud התמיכה, כך שלא תצטרכו לשתף אותם באופן ידני אחרי יצירת האשכול בכל פעם.

  • הפעלת שיתוף אחרי יצירת האשכול: אפשר להפעיל שיתוף של נתוני נקודות ביקורת עם Google Cloud support אחרי יצירת האשכול. לשם כך, צריך לתת גישת קריאה לנתוני נקודות הביקורת לחשבון השירות שמשמש את Google Cloud support, באופן הבא:

    • אם הגישה האחידה ברמת הקטגוריה מופעלת בקטגוריית הטמפ', צריך להוסיף קשירת מדיניות IAM:

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

    • אם בקטגוריית הזמנית מופעלת בקרת גישה ברמת האובייקט, מריצים את הפקודה הבאה כדי לשתף נתוני אבחון של נקודת ביקורת:

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

השבתה של איסוף נתוני אבחון של נקודות ביקורת

כדי להשבית את איסוף הנתונים האבחוניים של נקודות הבדיקה באשכול, מגדירים את הערך dataproc:diagnostic.capture.enabled=false כשיוצרים את האשכול.

איסוף נתוני אבחון של תמונת מצב

אפשר להריץ את הפקודה הבאה של gcloud dataproc clusters diagnose כדי לאסוף תמונת מצב של נתוני אבחון מאשכול פעיל. הנתונים נכתבים כקובץ ארכיון (tar) בקטגוריית האחסון הזמני של Managed Service for Apache Spark ב-Cloud Storage.

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

הערות:

  • CLUSTER_NAME: השם של האשכול שאותו רוצים לאבחן.
  • REGION: האזור של האשכול, למשל us-central1.
  • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE הדגל הזה מאפשר גישה לקובץ ה-tar של האבחון כדי לקבל תמיכה שלGoogle Cloud . שולחים Google Cloud לצוות התמיכה את הנתיב של קובץ ה-TAR של האבחון ב-Cloud Storage.

    במקום לספק את קובץ ה-TAR לתמיכה, אפשר לספק את ה-UUID של האשכול, את מזהה הפעולה של פקודת האבחון ואת המיקום ב-Cloud Storage של קטגוריית התצורה של האשכול.

    אם בוחרים לכתוב קובץ tar של אבחון לספרייה ספציפית, צריך לספק לצוות התמיכה את הנתיב המלא של קובץ ה-tar ב-Cloud Storage, שמופיע בפלט של הפקודה diagnose. Google Cloud

    גישה לקטגוריה של Cloud Storage והיקף התוכן שמשותף: הגדרת הגישה לקטגוריה של Cloud Storage שמכילה את קובץ ה-tar של האבחון קובעת את היקף התוכן שמשותף עם צוות התמיכה של Google Cloud :

    • גישה אחידה ברמת הקטגוריה: אם גישה אחידה ברמת הקטגוריה מופעלת בקטגוריית הביניים של Managed Service for Apache Spark, או אם מצוין TARBALL_DIR, בקטגוריה שמכילה את TARBALL_DIR, כל התוכן של הקטגוריה משותף עם Google Cloud support.

    • גישה ברמת האובייקט: אם הגישה ברמת האובייקט מופעלת בקטגוריית האחסון הזמני של Managed Service for Apache Spark או אם מצוין TARBALL_DIR, בקטגוריה שמכילה את TARBALL_DIR, רק קובץ ה-tar של האבחון משותף עם התמיכה של Google Cloud .

  • TARBALL_DIR: אופציונלי. אפשר להשתמש בדגל הזה כדי לציין ספרייה ב-Cloud Storage שבה ייכתב קובץ ה-tar של האבחון. אם לא מציינים את הדגל הזה, קובץ ה-tar של האבחון ייכתב אל דלי האחסון הזמני של Managed Service for Apache Spark.

  • Additional flags:

    • --start-time עם --end-time: משתמשים בשני הדגלים כדי לציין טווח זמן בפורמט %Y-%m-%dT%H:%M:%S.%fZ לאיסוף נתונים לצורך אבחון. ציון טווח זמן מאפשר גם איסוף של יומני שינוי גודל אוטומטי של Managed Service for Apache Spark במהלך טווח הזמן (כברירת מחדל, יומני שינוי גודל אוטומטי של Managed Service for Apache Spark לא נאספים בנתוני תמונת המצב של האבחון).

    • אפשר להשתמש באחד מהדגלים הבאים או בשניהם כדי לאסוף יומני פלט ספציפיים של מנהל עבודות, אירוע Spark, אפליקציית YARN ו-Sparklens:

      • --job-ids: רשימה מופרדת בפסיקים של מזהי משרות
      • --yarn-application-ids: רשימה מופרדת בפסיקים של מזהי אפליקציות YARN

        • צריך להפעיל את צבירת היומנים של YARN ‏ (yarn.log-aggregation-enable=true) כדי לאסוף את יומני האפליקציות של YARN.
        • עבור משימות MapReduce, נאספים רק יומני אפליקציות של YARN.

אופציונלי: הרצת סקריפט האבחון

הפקודה gcloud dataproc clusters diagnose עלולה להיכשל או להגיע למצב פסק זמן אם אשכול נמצא במצב שגיאה ולא יכול לקבל משימות אבחון מהשרת של Managed Service for Apache Spark. במקום להריץ את פקודת האבחון, אפשר להשתמש ב-SSH כדי להתחבר לאשכול ואז להריץ את הסקריפט באופן מקומי בצומת הראשי.

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

קובץ ה-tar של הארכיון האבחוני נשמר בספרייה מקומית. בפלט של הפקודה מופיע המיקום של קובץ ה-TAR עם הוראות להעלאת קובץ ה-TAR לקטגוריה של Cloud Storage.

נתוני תמונת מצב של אבחון

נתוני תמונת המצב של האשכול כוללים סיכום אבחון וכמה קטעי ארכיון.

סיכום אבחון: קובץ הארכיון כולל את summary.txt שנמצא בשורש הארכיון. הוא מספק סקירה כללית של סטטוס האשכול, כולל סטטוס YARN,‏ HDFS, דיסק ורשת, וכולל אזהרות כדי להודיע לכם על בעיות פוטנציאליות.

קטעי ארכיון: קובץ הארכיון כולל את המידע הבא שנכתב במיקומים הבאים בקובץ הארכיון.

  • מידע על שירותים ועל תהליכי Daemon

    הפקודה בוצעה המיקום בארכיון
    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

  • מידע על JVM

    הפקודה בוצעה המיקום בארכיון
    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

  • פרטי מערכת Linux

    הפקודה בוצעה המיקום בארכיון
    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

  • קבצי יומן

    הפריט כלול המיקום בארכיון
    כל היומנים ב-/var/log עם הקידומות הבאות בשם הקובץ:
    cloud-sql-proxy
    dataproc
    druid
    gcdp
    google
    hadoop
    hdfs
    hive
    knox
    presto
    spark
    syslog
    yarn
    zookeeper
    הקבצים ממוקמים בתיקיית הארכיון logs ושומרים על שמות הקבצים המקוריים שלהם.
    יומני הפעלה של צמתים ב-Managed Service for Apache Spark לכל צומת (ראשי ועובד) באשכול. הקבצים ממוקמים בתיקייה node_startup של הארכיון, שמכילה תיקיות משנה נפרדות לכל מכונה באשכול.
    יומני שער הרכיבים מ-journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

  • קבצי הגדרות

    פריטים כלולים המיקום בארכיון
    מטא-נתונים של מכונות וירטואליות /conf/managed-spark/metadata
    משתני סביבה ב-/etc/environment /conf/managed-spark/environment
    מאפיינים של Managed Service for Apache Spark /conf/managed-spark/dataproc.properties
    כל הקבצים ב-/etc/google-managed-spark/ /conf/managed-spark/
    כל הקבצים ב-/etc/hadoop/conf/ /conf/hadoop/
    כל הקבצים ב-/etc/hive/conf/ /conf/hive/
    כל הקבצים ב-/etc/hive-hcatalog/conf/ /conf/hive-hcatalog/
    כל הקבצים ב-/etc/knox/conf/ /conf/knox/
    כל הקבצים ב-/etc/pig/conf/ /conf/pig/
    כל הקבצים ב-/etc/presto/conf/ /conf/presto/
    כל הקבצים ב-/etc/spark/conf/ /conf/spark/
    כל הקבצים ב-/etc/tez/conf/ /conf/tez/
    כל הקבצים ב-/etc/zookeeper/conf/ /conf/zookeeper/

שיתוף קובץ הארכיון

אפשר לשתף את קובץ הארכיון עם Google Cloud התמיכה או עם משתמשים כדי לקבל עזרה בפתרון בעיות שקשורות לאשכול או לעבודה.

כדי לשתף את קובץ הארכיון:

  • להעתיק את קובץ הארכיון מ-Cloud Storage, ואז לשתף את הארכיון שהורדתם, או
  • משנים את ההרשאות בארכיון כדי לאפשר למשתמשים או לפרויקטים אחרים לגשת לקובץ. Google Cloud

    דוגמה: הפקודה הבאה מעניקה הרשאות קריאה לארכיון לבעלי הפרויקט test-project:

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