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

‫"View Dataproc cluster diagnostic data" ‏(הצגת נתוני אבחון של אשכול Dataproc)

כדי לפתור בעיות באשכולות ובמשימות, אפשר להשתמש בתכונות הבאות של איסוף נתוני אבחון ב-Dataproc:

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

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

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

‫Dataproc שומר נתוני אבחון של נקודות ביקורת בקטגוריית temp של האשכול ב-Cloud Storage בתיקייה הבאה (checkpoint diagnostic data folder):

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

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

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

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

    הפקודה בוצעה המיקום בתיקיית האבחון
    yarn node -list -all .../nodes/timestamp/yarn-nodes.log
    hdfs dfsadmin -report -live -decommissioning .../nodes/timestamp/hdfs-nodes.log

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

    • ‫MapReduce job.xml: קובץ שמכיל את הגדרות התצורה של המשימה, שנשמר במיקום .../jobs/JOB_UUID/mapreduce/job.xml.
    • יומני אירועים של Spark: פרטים על ביצוע המשימה שימושיים לניפוי באגים, נשמרו במיקום .../jobs/JOB_UUID/spark/application-id.
  • פרטי מערכת Linux: Dataproc מריץ את הפקודות הבאות כדי לאסוף ולשמור פרטי מערכת במיקומים הבאים בתיקיית נתוני האבחון של נקודת הבדיקה ב-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
  • קבצי הגדרות: Dataproc שומר את קובצי ההגדרות הבאים במיקומים הבאים בתיקיית נתוני האבחון של נקודת הבדיקה ב-Cloud Storage.

    הפריטים במארז המיקום בתיקיית האבחון
    מאפייני Dataproc .../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 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) בקטגוריית הביניים של Dataproc ב-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 את הנתיב המלא ב-Cloud Storage של קובץ ה-tar, שמוצג בפלט של הפקודה diagnose.

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

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

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

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

  • Additional flags:

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

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

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

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

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

הפקודה gcloud dataproc clusters diagnose עלולה להיכשל או להגיע לזמן קצוב לתפוגה אם אשכול נמצא במצב שגיאה ולא יכול לקבל משימות אבחון מהשרת של Dataproc. במקום להריץ את פקודת האבחון, אפשר להשתמש ב-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 ושמות הקבצים המקוריים נשמרים.
    יומני הפעלה של צומתי Dataproc לכל צומת (ראשי ועובד) באשכול. הקבצים ממוקמים בתיקיית הארכיון node_startup, שמכילה תיקיות משנה נפרדות לכל מכונה באשכול.
    יומני שער הרכיבים מ-journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

  • קבצי הגדרות

    פריטים כלולים המיקום בארכיון
    מטא-נתונים של מכונות וירטואליות /conf/dataproc/metadata
    משתני סביבה ב-/etc/environment /conf/dataproc/environment
    מאפייני Dataproc /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