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

"הצגת נתוני האבחון של אשכול Managed Service for Apache Spark"

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

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

כברירת מחדל, 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 שונה.

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

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

    הפריטים במארז מיקום בתיקיית האבחון
    מאפייני Managed Service for Apache Spark .../configs/dataproc/dataproc.properties
    כל הקבצים ב-
    /etc/google-dataproc/
    .../configs/dataproc/
    כל הקבצים ב-
    /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 אחרי יצירת האשכול, צריך לתת לחשבון השירות של התמיכה של Google Cloud גישת קריאה לנתוני נקודות הבדיקה:

    • אם בקטגוריה הזמנית מופעלות הרשאות גישה מאוחדות ברמת הקטגוריה (UBLA), צריך להוסיף קישור למדיניות 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) בקטגוריית ה-Staging של 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 של אבחון לספרייה ספציפית, תצטרכו לספק לתמיכה של Google Cloud את הנתיב המלא של קובץ ה-tar ב-Cloud Storage, שמוצג בפקודת האבחון.

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

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

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

  • ‫TARBALL_DIR: אופציונלי. אפשר להשתמש בדגל הזה כדי לציין ספרייה ב-Cloud Storage שבה ייכתב קובץ ה-tar של האבחון. אם לא משתמשים בדגל הזה, קובץ ה-tar של האבחון נכתב בקטגוריית ה-Staging של 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‏ (yarn.log-aggregation-enable=true).
        • במשימות 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, דיסק ורשת, וכולל אזהרות כדי להתריע על בעיות פוטנציאליות.

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

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

    הפקודה בוצעה המיקום בארכיון
    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, ושמות הקבצים המקוריים נשמרים.
    יומני ההפעלה של כל צומת (מאסטר ו-worker) באשכול של Managed Service for Apache Spark. הקבצים מועברים לתיקיית הארכיון node_startup, שמכילה תיקיות משנה נפרדות לכל מכונה באשכול.
    יומני שער של רכיבים מ-journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

  • קובצי תצורה

    הפריטים הכלולים המיקום בארכיון
    מטא-נתונים של VM /conf/dataproc/metadata
    משתני סביבה ב-/etc/environment /conf/dataproc/environment
    מאפייני Managed Service for Apache Spark /conf/dataproc/dataproc.properties
    כל הקבצים ב-/etc/google-dataproc/ /conf/dataproc/
    כל הקבצים ב-/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