חילוץ מטא-נתונים מ-Apache Hive לצורך העברה

במאמר הזה מוסבר איך להשתמש בכלי dwh-migration-dumper כדי לחלץ את המטא-נתונים הנדרשים לפני שמריצים העברה של נתונים או הרשאות של Apache Hive.

במסמך הזה מוסבר איך לחלץ מטא-נתונים ממקורות הנתונים הבאים:

  • Apache Hive
  • מערכת הקבצים המבוזרת של Apache Hadoop‏ (HDFS)
  • Apache Ranger
  • Cloudera Manager
  • יומני שאילתות של Apache Hive

לפני שמתחילים

לפני שמשתמשים בכלי dwh-migration-dumper, צריך לבצע את הפעולות הבאות:

מתקינים Java

בשרת שבו אתם מתכננים להפעיל את הכלי dwh-migration-dumper צריכה להיות מותקנת גרסה 8 ומעלה של Java. אם לא, מורידים את Java מדף ההורדות של Java ומתקינים אותה.

ההרשאות הנדרשות

לחשבון המשתמש שאתם מציינים כדי לחבר את הכלי dwh-migration-dumper למערכת המקור צריכות להיות הרשאות לקרוא מטא-נתונים מהמערכת הזו. מוודאים שלחשבון הזה יש תפקיד מתאים כדי לשלוח שאילתות למשאבי המטא-נתונים שזמינים לפלטפורמה. לדוגמה, INFORMATION_SCHEMA הוא משאב מטא-נתונים שמשותף לכמה פלטפורמות.

התקנת הכלי dwh-migration-dumper

כדי להתקין את הכלי dwh-migration-dumper:

  1. במכונה שבה רוצים להריץ את הכלי dwh-migration-dumper, מורידים את קובץ ה-ZIP ממאגר ה-GitHub של הכלי dwh-migration-dumper.
  2. כדי לאמת את קובץ ה-ZIP של הכלי dwh-migration-dumper, מורידים את הקובץ SHA256SUMS.txt ומריצים את הפקודה הבאה:

    Bash

    sha256sum --check SHA256SUMS.txt

    אם האימות נכשל, עיינו בקטע פתרון בעיות.

    Windows PowerShell

    (Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]

    מחליפים את RELEASE_ZIP_FILENAME בשם קובץ ה-ZIP שהורדתם של גרסת כלי החילוץ של dwh-migration-dumper בשורת הפקודה, לדוגמה: dwh-migration-tools-v1.0.52.zip

    התוצאה True מאשרת שאימות סיכום הביקורת (checksum) הצליח.

    התוצאה False מצביעה על שגיאת אימות. חשוב לוודא שקובצי ה-checksum וקובצי ה-ZIP הורדו מאותה גרסת הפצה והם נמצאים באותה ספרייה.

  3. מחלצים את קובץ ה-ZIP. הקובץ הבינארי של כלי החילוץ נמצא בתיקיית המשנה /bin של התיקייה שנוצרה על ידי חילוץ קובץ ה-ZIP.

  4. מעדכנים את משתנה הסביבה PATH כך שיכלול את נתיב ההתקנה של כלי החילוץ.

חילוץ מטא-נתונים להעברה

כדי ללמוד איך לחלץ מטא-נתונים ממקור הנתונים, בוחרים באחת מהאפשרויות הבאות:

Apache Hive

מבצעים את השלבים שמפורטים בקטע חילוץ מטא-נתונים ויומני שאילתות ממחסן הנתונים של Apache Hive כדי לחלץ את המטא-נתונים של Apache Hive. אחר כך אפשר להעלות את המטא-נתונים לקטגוריה של Cloud Storage שמכילה את קובצי ההעברה.

HDFS

מריצים את הפקודה הבאה כדי לחלץ מטא-נתונים מ-HDFS באמצעות הכלי dwh-migration-dumper.

dwh-migration-dumper \
  --connector hdfs \
  --host HDFS-HOST \
  --port HDFS-PORT \
  --output gs://MIGRATION-BUCKET/hdfs-dumper-output.zip \
  --assessment \

מחליפים את מה שכתוב בשדות הבאים:

  • ‫HDFS-HOST: שם המארח של NameNode ב-HDFS
  • ‫HDFS-PORT: מספר היציאה של NameNode ב-HDFS. אם אתם משתמשים ביציאת ברירת המחדל של 8020, אתם יכולים לדלג על הארגומנט הזה.
  • ‫MIGRATION-BUCKET: הקטגוריה של Cloud Storage שבה אתם משתמשים כדי לאחסן את קובצי ההעברה.

הפקודה הזו מחלצת מטא-נתונים מ-HDFS לקובץ בשם hdfs-dumper-output.zip בספרייה MIGRATION-BUCKET.

יש כמה מגבלות ידועות כשמחלצים מטא-נתונים מ-HDFS:

  • חלק מהמשימות במחבר הזה הן אופציונליות ויכולות להיכשל, ובמקרה כזה נרשם דוח קריסות מלא בפלט. כל עוד המשימות הנדרשות בוצעו בהצלחה ונוצר hdfs-dumper-output.zip, אפשר להמשיך בהעברת HDFS.
  • תהליך החילוץ עלול להיכשל או לפעול לאט מהצפוי אם גודל מאגר ה-threads שהוגדר גדול מדי. אם נתקלתם בבעיות האלה, מומלץ להקטין את מאגר ה-threads באמצעות הארגומנט --thread-pool-size בשורת הפקודה.

Apache Ranger

מריצים את הפקודה הבאה כדי לחלץ מטא-נתונים מ-Apache Ranger באמצעות הכלי dwh-migration-dumper.

dwh-migration-dumper \
  --connector ranger \
  --host RANGER-HOST \
  --port 6080 \
  --user RANGER-USER \
  --password RANGER-PASSWORD \
  --ranger-scheme RANGER-SCHEME \
  --output gs://MIGRATION-BUCKET/ranger-dumper-output.zip \
  --assessment \

מחליפים את מה שכתוב בשדות הבאים:

  • ‫RANGER-HOST: שם המארח של המכונה של Apache Ranger
  • ‫RANGER-USER: שם המשתמש של המשתמש ב-Apache Ranger
  • ‫RANGER-PASSWORD: הסיסמה של המשתמש ב-Apache Ranger
  • ‫RANGER-SCHEME: מציינים אם Apache Ranger משתמש ב-http או ב-https. ערך ברירת המחדל הוא http.
  • ‫MIGRATION-BUCKET: הקטגוריה של Cloud Storage שבה אתם משתמשים כדי לאחסן את קובצי ההעברה.

אפשר גם לכלול את הדגלים האופציונליים הבאים:

  • ‫--kerberos-auth-for-hadoop: מחליף את --user ואת --password, אם Apache Ranger מוגן על ידי Kerberos במקום אימות בסיסי. כדי להשתמש בדגל הזה, צריך להריץ את הפקודה kinit לפני הכלי dwh-migration-dumper.
  • ‫--ranger-disable-tls-validation: צריך לכלול את הדגל הזה אם אישור ה-HTTPS שמשמש את ה-API הוא בחתימה עצמית. לדוגמה, כשמשתמשים ב-Cloudera.

הפקודה הזו מחלצת מטא-נתונים מ-Apache Ranger לקובץ בשם ranger-dumper-output.zip בספרייה MIGRATION-BUCKET.

Cloudera

מריצים את הפקודה הבאה כדי לחלץ מטא-נתונים מ-Cloudera באמצעות הכלי dwh-migration-dumper.

dwh-migration-dumper \
  --connector cloudera-manager \
  --url CLOUDERA-URL \
  --user CLOUDERA-USER \
  --password CLOUDERA-PASSWORD \
  --output gs://MIGRATION-BUCKET/cloudera-dumper-output.zip \
  --yarn-application-types APPLICATION-TYPES \
  --pagination-page-size PAGE-SIZE \
  --assessment \

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CLOUDERA-URL: כתובת ה-URL של Cloudera Manager
  • ‫CLOUDERA-USER: שם המשתמש של המשתמש ב-Cloudera
  • ‫CLOUDERA-PASSWORD: הסיסמה של המשתמש ב-Cloudera
  • ‫MIGRATION-BUCKET: הקטגוריה של Cloud Storage שבה אתם משתמשים כדי לאחסן את קובצי ההעברה.
  • ‫APPLICATION-TYPES: (אופציונלי) רשימה של כל סוגי האפליקציות הקיימים מ-Hadoop YARN. לדוגמה, SPARK, MAPREDUCE.
  • ‫PAGE-SIZE: (אופציונלי) מציינים כמה נתונים נשלפים משירותים של צד שלישי, כמו Hadoop YARN API. ערך ברירת המחדל הוא 1000, שמייצג 1,000 ישויות לכל בקשה.

הפקודה הזו מחלצת מטא-נתונים מ-Cloudera לקובץ בשם dwh-migration-cloudera.zip בספרייה MIGRATION-BUCKET.

יומני שאילתות של Apache Hive

מבצעים את השלבים שבקטע חילוץ יומני שאילתות באמצעות ה-logging hook של hadoop-migration-assessment כדי לחלץ את יומני השאילתות של Apache Hive. אחר כך אפשר להעלות את היומנים לקטגוריה של Cloud Storage שמכילה את קובצי ההעברה.

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

אחרי שחילצתם את המטא-נתונים מ-Hadoop, אתם יכולים להשתמש בקובצי המטא-נתונים האלה כדי: