יומנים של Managed Service for Apache Spark

ב-Cloud Logging אפשר להציג, לחפש, לסנן ולאחסן בארכיון את יומני המשימות והאשכולות של Managed Service for Apache Spark.

רמות הרישום ביומן של הרכיבים

כשיוצרים אשכול, אפשר להגדיר את רמות הרישום ביומן של Spark,‏ Hadoop,‏ Flink ורכיבים אחרים של Managed Service for Apache Spark באמצעות מאפייני אשכול של log4j שספציפיים לרכיב, כמו hadoop-log4j. רמות הרישום ביומן של רכיבים שמבוססים על אשכולות חלות על תהליכי רקע של שירותים, כמו YARN ResourceManager, ועל משימות שפועלות באשכול.

אם מאפייני log4j לא נתמכים ברכיב מסוים, כמו רכיב Presto, צריך לכתוב פעולת אתחול שעורכת את הקובץ log4j.properties או log4j2.properties של הרכיב.

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

רמות הרישום ביומן של גרסאות הרכיבים של Spark ו-Hive:

הרכיבים Spark 3.3.X ו-Hive 3.X משתמשים במאפייני log4j2, ואילו גרסאות קודמות של הרכיבים האלה משתמשות במאפייני log4j (ראו Apache Log4j2). כדי להגדיר רמות רישום ביומן של Spark באשכול, משתמשים בתחילית spark-log4j:.

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

ב-Managed Service for Apache Spark, רמת רישום ברירת המחדל ביומן של תוכניות מנהלי ההתקנים של המשימות היא INFO. אפשר לשנות את ההגדרה הזו לחבילה אחת או יותר באמצעות הדגל --driver-log-levels של gcloud dataproc jobs submit.

דוגמה:

מגדירים את רמת הרישום ביומן של DEBUG כששולחים משימת Spark שקוראת קובצי Cloud Storage.

gcloud dataproc jobs submit spark ...\
    --driver-log-levels org.apache.spark=DEBUG,com.google.cloud.hadoop.gcsio=DEBUG

דוגמה:

מגדירים את רמת הרישום ביומן של root ל-WARN, ואת רמת הרישום ביומן של com.example ל-INFO.

gcloud dataproc jobs submit hadoop ...\
    --driver-log-levels root=WARN,com.example=INFO

רמות הרישום ביומן של מנהל הביצוע של Spark

כדי להגדיר את רמות הרישום ביומן של מנהל הביצוע ב-Spark:

  1. מכינים קובץ תצורה של log4j ומעלים אותו ל-Cloud Storage

    .

  2. מפנים לקובץ התצורה כששולחים את המשימה.

    דוגמה:

    gcloud dataproc jobs submit spark ...\
        --file gs://my-bucket/path/spark-log4j.properties \
        --properties spark.executor.extraJavaOptions=-Dlog4j.configuration=file:spark-log4j.properties
    

‫Spark מוריד את קובץ המאפיינים של Cloud Storage לספריית העבודה המקומית של המשימה, שמופיעה בתור file:<name> ב--Dlog4j.configuration.

יומני משימות של Managed Service for Apache Spark ב-Logging

במאמר פלט ויומנים של משימות ב-Managed Service for Apache Spark מוסבר איך להפעיל ב-Logging יומני מנהלי התקנים של משימות ב-Managed Service for Apache Spark.

גישה ליומני המשימות ב-Logging

אפשר לגשת ליומני המשימות של Managed Service for Apache Spark באמצעות Logs Explorer, הפקודה gcloud logging או Logging API.

המסוף

יומני הקונטיינרים של YARN ומנהלי המשימות של Managed Service for Apache Spark מופיעים במשאב Cloud Managed Service for Apache Spark Job.

דוגמה: יומן של מנהל התקן של משימה אחרי הרצת שאילתה ב-Logs Explorer עם הבחירות הבאות:

  • מקור מידע: Cloud Dataproc Job
  • שם היומן: dataproc.job.driver

דוגמה: יומן של קונטיינר YARN אחרי הרצת שאילתה ב-Logs Explorer עם הבחירות הבאות:

  • מקור מידע: Cloud Dataproc Job
  • שם היומן: dataproc.job.yarn.container

gcloud

אפשר לקרוא את רשומות היומן של המשימה באמצעות הפקודה gcloud logging read. הארגומנטים של המשאב חייבים להיות מוקפים במירכאות ("..."). הפקודה הבאה משתמשת בתוויות של אשכולות כדי לסנן את רשומות היומן שמוחזרות.

gcloud logging read \
    "resource.type=cloud_dataproc_job \
    resource.labels.region=cluster-region \
    resource.labels.job_id=my-job-id"

פלט לדוגמה (חלקי):

jsonPayload:
  class: org.apache.hadoop.hdfs.StateChange
  filename: hadoop-hdfs-namenode-test-dataproc-resize-cluster-20190410-38an-m-0.log
  ,,,
logName: projects/project-id/logs/hadoop-hdfs-namenode
---
jsonPayload:
  class: SecurityLogger.org.apache.hadoop.security.authorize.ServiceAuthorizationManager
  filename: cluster-name-dataproc-resize-cluster-20190410-38an-m-0.log
  ...
logName: projects/google.com:hadoop-cloud-dev/logs/hadoop-hdfs-namenode

‫API בארכיטקטורת REST

אתם יכולים להשתמש ב-Logging API בארכיטקטורת REST כדי להציג רשימה של רשומות ביומן (ראו entries.list).

יומני אשכולות של Managed Service for Apache Spark ב-Logging

השירות Managed Service for Apache Spark מייצא ל-Cloud Logging את היומנים הבאים של אשכולות Apache Hadoop,‏ Spark,‏ Hive,‏ Zookeeper ויומנים אחרים של אשכולות Managed Service for Apache Spark.

סוג היומן שם היומן תיאור הערות
יומני הדימון הראשי hadoop-hdfs
hadoop-hdfs-namenode
hadoop-hdfs-secondarynamenode
hadoop-hdfs-zkfc
hadoop-yarn-resourcemanager
hadoop-yarn-timelineserver
hive-metastore
hive-server2
hadoop-mapred-historyserver
zookeeper
צומת יומן
צומת שם של HDFS
צומת שם משני של HDFS
בקר יתירות כשל של Zookeeper
מנהל משאבים של YARN
שרת ציר זמן של YARN
מאגר מטא-נתונים של Hive
שרת Hive 2
שרת היסטוריית משימות של Mapreduce
שרת Zookeeper
יומני ה-daemon של ה-worker hadoop-hdfs-datanode
hadoop-yarn-nodemanager
HDFS datanode
YARN nodemanager
יומני מערכת thought autoscaler
google.dataproc.agent
google.dataproc.startup
יומן המידרוג האוטומטי של Managed Service for Apache Spark
יומן הפעילות של סוכן Managed Service for Apache Spark
יומן הסקריפט לטעינה בזמן ההפעלה של Managed Service for Apache Spark ויומן פעולת האתחול
יומנים מורחבים (נוספים) knox
gateway-audit
zeppelin
ranger-usersync
jupyter_notebook
jupyter_kernel_gateway
spark-history-server
כל היומנים בספריות המשנה של /var/log/ שתואמים ל:
knox (כולל gateway-audit.log)
zeppelin
ranger-usersync
jupyter_notebook
jupyter_kernel_gateway
spark-history-server
הגדרת המאפיין dataproc:dataproc.logging.extended.enabled=false משביתה את האיסוף של יומנים מורחבים באשכול
יומני המערכת של ה-VM syslog
יומני מערכת מהצמתים הראשיים ומהצמתים העובדים של האשכול
הגדרת המאפיין dataproc:dataproc.logging.syslog.enabled=false משביתה את האיסוף של יומני המערכת של המכונות הווירטואליות באשכול

גישה ליומני אשכולות ב-Cloud Logging

אפשר לגשת ליומני האשכולות של Managed Service for Apache Spark באמצעות Logs Explorer, הפקודה gcloud logging או Logging API.

המסוף

כדי להציג את יומני האשכול ב-Logs Explorer, בוחרים את השאילתות הבאות:

  • מקור מידע: Cloud Dataproc Cluster
  • שם היומן: log name

gcloud

אפשר לקרוא את רשומות היומן של האשכול באמצעות הפקודה gcloud logging read. הארגומנטים של המשאב חייבים להיות מוקפים במירכאות ("..."). הפקודה הבאה משתמשת בתוויות של אשכולות כדי לסנן את רשומות היומן שמוחזרות.

gcloud logging read <<'EOF'
    "resource.type=cloud_dataproc_cluster
    resource.labels.region=cluster-region
    resource.labels.cluster_name=cluster-name
    resource.labels.cluster_uuid=cluster-uuid"
EOF

פלט לדוגמה (חלקי):

jsonPayload:
  class: org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService
  filename: hadoop-yarn-resourcemanager-cluster-name-m.log
  ...
logName: projects/project-id/logs/hadoop-yarn-resourcemanager
---
jsonPayload:
  class: org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService
  filename: hadoop-yarn-resourcemanager-component-gateway-cluster-m.log
  ...
logName: projects/project-id/logs/hadoop-yarn-resourcemanager

‫API בארכיטקטורת REST

אתם יכולים להשתמש ב-Logging API בארכיטקטורת REST כדי להציג רשימה של רשומות ביומן (ראו entries.list).

הרשאות

כדי לכתוב יומנים ב-Logging, לחשבון השירות של Managed Service for Apache Spark VM צריך להיות תפקיד logging.logWriter ב-IAM. התפקיד הזה מוגדר כברירת מחדל בחשבון השירות של Managed Service for Apache Spark. אם משתמשים בחשבון שירות בהתאמה אישית, צריך להקצות את התפקיד הזה לחשבון השירות.

הגנה על היומנים

כברירת מחדל, היומנים ב-Logging מוצפנים במנוחה. אתם יכולים להפעיל מפתחות הצפנה בניהול הלקוח (CMEK) כדי להצפין את היומנים. מידע נוסף על התמיכה ב-CMEK זמין במאמרים ניהול המפתחות שמגינים על הנתונים של נתב היומנים וניהול המפתחות שמגינים על הנתונים באחסון של Logging.

המאמרים הבאים