מדריך מקיף לבניית ולאיתור באגים ב-Apache Doris

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

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

סקירה

האם נדמה לך אי פעם כיצד שאילתת SQL מנותחת ומבוצעת מתחילתה ועד סופה? ב־אפאצ'י דוריס, תהליך זה משלב מרכיבי ליבה מרובים ומנגנונים פנימיים מורכבים. מאמר זה ידריך אתכם במסע מקוד המקור ועד לזמן ריצה, ויציע ניתוח מקיף של תהליכי הבנייה והאיתור בדוריס, ויסייע לכם לרכוש הבנה עמוקה של עקרונות ביצוע שאילתות SQL.

1. סביבה

סביבה בסיסית

  1. תצורת מחשב. MacBook Pro (מעבד: Apple M1, macOS: 15.1)
  2. JDK. גרסה 17
  3. ענף דוריס. השתמשו בענף דוריס מאסטר (במיוחד, בענף branch-2.1)

התקנת תלותי סביבה

כאשר משתמשים ב־Homebrew, גרסת ה־JDK שהותקנה היא 17 מכיוון שב־macOS גרסת ה־Homebrew ל־arm64 אינה כוללת ברירת מחדל את JDK 8. כרגע, Doris תומכת רק ב־JDK8 ו־JDK17.

PowerShell

 

הסבר על תלותים

1. Java, Maven, וכו'. אלו יכולים להירד בנפרד לניהול קל יותר.

  • ב־macOS, מומלץ להשתמש ב־Zulu JDK17.
  • ניתן להוריד את Maven מאתר ה־Maven הרשמי.
  • יש להגדיר באופן ידני את Java וְMaven שהורדו במשתני הסביבה שלך.

2. משתני סביבה של תלות אחרות (דוגמה למחשבי Apple Silicon):

PowerShell

 

יש להוסיף את ההגדרות לקובץ ה־~/.bashrc או לקובץ ה־~/.zshrc שלך ולהריץ source ~/.bashrc או source ~/.zshrc כדי ליישם את השינויים.

התקנת Thrift

הערה: יש להתקין את Thrift רק כאשר אתה מנפה רק את ה־FE (Frontend). כאשר אתה מנפה גם את ה־BE (Backend) וה־FE, ספריות צד שלישי של ה־BE כבר כוללות את Thrift.

Plain Text

 

שיגור הקוד שלך

שכפול הקוד שלך על ידי ביצוע הפקודות הבאות:

PowerShell

 

הגדרת משתני סביבה

PowerShell

 

הורדת תלותי הבנייה של Doris

1. בקר בדף Apache Doris Third Party Prebuilt (קישור) כדי למצוא את קוד המקור של כל ספריות צד גדר. ניתן להוריד ישירות את doris-thirdparty-source.tgz.

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

PowerShell

 

כאשר אתה מפעיל את protoc ואת thrift, עשויים להתעקש על בעיות בפתיחתם עקב בעיות אימות מפתח. במקרה כזה, נווט אל אבטחה ופרטיות ולחץ על הלחצן פתח בכל זאת בכרטיסיית הכללי כדי לאשר שברצונך לפתוח את הבינארי. לפרטים נוספים, ראה תמיכה של Apple.

הגדלת מגבלת קובץ התיאורים המקסימלי של המערכת

לאחר שהשתנה, הפעל source על הקובץ המתאים כדי להחיל את השינויים.

PowerShell

 

2. הידור של Doris

נווט אל ספריית הבית שלך של Doris והרץ את סקריפט הבנייה:

PowerShell

 

אם ברצונך להאיץ את תהליך הבנייה ואינך זקוק לדף קדמי של ה-FE, תוכל להעריך את קטע בניית ממשק ה-FE בסקריפט build.sh:

Shell

 

לאחר ההידור המוצלח, אתה אמור לראות פלט דומה לזה שלמעלה:

3. ניפוי שגיאות

הגדרת סביבת ניפוי שגיאות

מדריך זה מתייחס לניפוי שגיאות ב-Doris FE בלבד.

Plain Text

 

התחל בניפוי באמצעות IntelliJ IDEA. 

חשוב: אל תפתח את ספריית השורש של פרויקט Doris; במקום זאת, פתח את ספריית ה-FE כדי למנוע התנגשויות עם CLion.

יצירת קוד FE

פתח את טרמינל ה-IDEA, נווט לתיקיית השורש של הקוד, ובצע את הפקודה הבאה:

PowerShell

 

חכה עד שתראה את ההודעה "Done".

הגדרת ניפוי עבור FE

1. ערוך הגדרות.

2. הוסף הגדרת DorisFE. לחץ על סמל ה-+ בצד שמאל למעלה כדי להוסיף הגדרת אפליקציה. שקול לתמונה למטה להגדרות מסוימות.

3. תיקיית עבודה. הגדר אותה לתיקיית ה-fe בתוך קוד המקור.

4. משתני סביבה. הגדר את משתני הסביבה באופן דומה לאלה שיוצאים ב-fe/bin/start_fe.sh בתיקיית השורש של Doris. המשתנה DORIS_HOME צריך לצבוע לתיקיית הסופקת אותה העתקת בשלב הקודם.

Plain Text

 


הפעלת FE

לחץ על הפעלה או ניפוי. זה יפעיל את תהליך הבנייה של FE; לאחר השלמתו, ה-FE יתחיל. במדריך זה, אנו בוחרים ניפוי.


הפעלת BE

מאחר וכבר העתקת את החבילה שנקומפלה לתיקיית doris-run, הפעל את ה-BE מתוך תיקיית זו:

PowerShell

 

תיקון שגיאות FE

1. התחברו ל־FE. השתמשו בלקוח MySQL או DBeaver כדי להתחבר ל־FE שנפתח על ידי IDEA

MySQL

 

2. הוסיפו את צומת ה־BE לאשכול.

MySQL

 

3. הגדירו נקודות עצירה בקוד. אתרו את קוד ה־ConnectProcessor בפרוייקט:


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

שאלות נפוצות

שאלה 1

במהלך ההידור, ייתכן שתתקלו בשגיאת התנגשות נעילה:

Plain Text

 

תשובה

מחקו קבצי .lock במאגר Maven המקומי שלכם על ידי הרצת:

Plain Text

 

שאלה 2

במהלך ההידור, ייתכן שתתקלו בשגיאה שנגרמת על ידי גרסת Node.js חדשה יותר:

Plain Text

 

תשובה

הגדירו את Node.js להשתמש בספק ה־OpenSSL הירושם על ידי הרצת:

Plain Text

 

הפניה: דיון ב־StackOverflow

שאלה 3

IntelliJ IDEA נכשלת בהפעלת FE עם השגיאה:

Plain Text

 

תשובה

המנפה של Maven עשוי לא להכיל מספיק זיכרון. הגדילו את ההקצאת זיכרון כפי שמוצג למטה:

שאלה 5

IntelliJ IDEA נכשלת בהתחלת FE עם השגיאה:

Plain Text

 

תשובה

תפתור את בעיה זו על ידי ביצוע הפקודות הבאות בספריית השורש של Doris:

Plain Text

 

שאלה 5

בגרסאות מסוימות, ההידור עשוי לכשל עם השגיאה:

Plain Text

 

תשובה

שנה את הקוד על פי PR או בצע את הפקודות הבאות:

Plain Text

 

שאלה 6

בגרסאות מסוימות במהלך הדיבוג, הFE בפורט 9030 נכשל בהתחלה, וה-fe.log מדווח:

Plain Text

 

תשובה

נווט אל תיקיית doris/docs, בצע את הפקודות הבאות, ואז הפעל מחדש את הFE:

Plain Text

 

על ידי מעקב אחרי המדריך הזה, תוכל להגדיר את הסביבה שלך, להידר, ולבצע דיבוג של Apache Doris בקלות רבה יותר. בהצלחה בדיבוג!

Source:
https://dzone.com/articles/guide-to-building-and-debugging-apache-doris