כדי לפתור בעיות באשכולות ובמשימות, אפשר להשתמש בתכונות הבאות של איסוף נתוני אבחון ב-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.loghdfs 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.
- MapReduce
פרטי מערכת Linux: Dataproc מריץ את הפקודות הבאות כדי לאסוף ולשמור פרטי מערכת במיקומים הבאים בתיקיית נתוני האבחון של נקודת הבדיקה ב-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קבצי הגדרות: 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.
- צריך להפעיל את צבירת היומנים של YARN (
אופציונלי: הרצת סקריפט האבחון
הפקודה gcloud dataproc clusters diagnose עלולה להיכשל או להגיע לזמן קצוב לתפוגה אם אשכול נמצא במצב שגיאה ולא יכול לקבל משימות אבחון מהשרת של Dataproc. במקום להריץ את פקודת האבחון, אפשר להשתמש ב-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ושמות הקבצים המקוריים נשמרים.יומני הפעלה של צומתי 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