אתם יכולים להשתמש בתכונות הבאות לאיסוף נתוני אבחון ב-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.loghdfs dfsadmin -report -live -decommissioning.../nodes/timestamp/hdfs-nodes.logcp 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.
- MapReduce
מידע על מערכת Linux: השירות Managed Service for Apache Spark מריץ את הפקודות הבאות כדי לאסוף ולשמור מידע על המערכת במיקומים הבאים בתיקיית נתוני האבחון של נקודת הבדיקה ב-Cloud Storage.
Command מיקום בתיקיית האבחון sysctl -a.../system/sysctl.logcat /proc/sys/fs/file-nr.../system/fs-file-nr.logping -c 1.../system/cluster-ping.logcp /etc/hosts.../system/hosts_entries.logcp /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.
- כדי לאסוף יומני אפליקציות של YARN, צריך להפעיל את צבירת היומנים של YARN (
-
אופציונלי: מריצים את סקריפט האבחון
הפקודה gcloud dataproc clusters diagnose עלולה להיכשל או להסתיים בזמן קצוב לתפוגה אם האשכול נמצא במצב שגיאה ולא יכול לקבל משימות אבחון מהשרת של Managed Service for Apache Spark. במקום להריץ את פקודת האבחון, אתם יכולים להשתמש ב-SSH כדי להתחבר לאשכול ואז להריץ את הסקריפט באופן מקומי בצומת הראשי.
gcloud compute ssh HOSTNAMEgcloud 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.loghdfs dfsadmin -report -live -decommissioning/system/hdfs-nodes.loghdfs dfs -du -h/system/hdfs-du.logservice --status-all/system/service.logsystemctl --type service/system/systemd-services.logcurl "http://${HOSTNAME}:8088/jmx"/metrics/resource_manager_jmxcurl "http://${HOSTNAME}:8088/ws/v1/cluster/apps"/metrics/yarn_app_infocurl "http://${HOSTNAME}:8088/ws/v1/cluster/nodes"/metrics/yarn_node_infocurl "http://${HOSTNAME}:9870/jmx"/metrics/namenode_jmxמידע על JVM
הפקודה בוצעה המיקום בארכיון jstack -l "${DATAPROC_AGENTPID}"jstack/agent${DATAPROC_AGENT_PID}.jstackjstack -l "${PRESTOPID}"jstack/agent${PRESTO_PID}.jstackjstack -l "${JOB_DRIVERPID}"jstack/driver${JOB_DRIVER_PID}.jstackjinfo "${DATAPROC_AGENTPID}"jinfo/agent${DATAPROC_AGENT_PID}.jstackjinfo "${PRESTOPID}"jinfo/agent${PRESTO_PID}.jstackjinfo "${JOB_DRIVERPID}"jinfo/agent${JOB_DRIVER_PID}.jstackפרטי מערכת Linux
הפקודה בוצעה המיקום בארכיון df -h/system/df.logps aux/system/ps.logfree -m/system/free.lognetstat -anp/system/netstat.logsysctl -a/system/sysctl.loguptime/system/uptime.logcat /proc/sys/fs/file-nr/system/fs-file-nr.logping -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