כדי לפתור בעיות באשכולות ובעבודות, אפשר להשתמש בתכונות הבאות של איסוף נתוני אבחון ב-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.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קבצי הגדרות: השירות המנוהל של 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.
- צריך להפעיל את צבירת היומנים של 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, דיסק ורשת, וכולל אזהרות כדי להודיע לכם על בעיות פוטנציאליות.
קטעי ארכיון: קובץ הארכיון כולל את המידע הבא שנכתב במיקומים הבאים בקובץ הארכיון.
מידע על שירותים ועל תהליכי Daemon
הפקודה בוצעה המיקום בארכיון 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ושומרים על שמות הקבצים המקוריים שלהם.יומני הפעלה של צמתים ב-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