Ein umfassender Leitfaden zum Erstellen und Debuggen von Apache Doris

Apache Doris, eine leistungsstarke, echtzeitfähige analytische Datenbank, prahlt mit einer beeindruckenden zugrundeliegenden Architektur und Code-Design. Für Entwickler ist das Beherrschen der Quellcodekompilierung und -debugging der Schlüssel zum Verständnis des Kerns von Doris. Der Build-Prozess umfasst jedoch mehrere Toolchains und Abhängigkeitskonfigurationen, und während des Debuggens können Sie auf verschiedene komplexe Probleme stoßen, die Anfänger überfordern können.

In diesem Artikel führen wir Sie durch den Prozess vom Quellcode bis zur Laufzeit und bieten eine detaillierte Analyse der Kompilierungs- und Debugging-Verfahren von Apache Doris. Vom Einrichten der Umgebung und dem Auschecken des Codes bis hin zur Behebung häufiger Probleme kombinieren wir praktische Beispiele, um Ihnen einen schnellen Einstieg in die Doris-Entwicklung und -Debugging zu ermöglichen. 

Überblick

Haben Sie sich jemals gefragt, wie eine SQL-Abfrage von Anfang bis Ende analysiert und ausgeführt wird? Bei Apache Doris beinhaltet dieser Prozess mehrere Kernkomponenten und komplexe interne Mechanismen. Dieser Artikel führt Sie durch die Reise vom Quellcode bis zur Laufzeit, bietet eine umfassende Analyse des Build- und Debugging-Prozesses von Doris und hilft Ihnen, ein tiefes Verständnis der SQL-Ausführungsprinzipien zu erlangen.

1. Umgebung

Grundlegende Umgebung

  1. Computerkonfiguration. MacBook Pro (Chip: Apple M1, macOS: 15.1)
  2. JDK. Version 17
  3. Doris-Zweig. Verwenden Sie den Doris Master Zweig (speziell den Zweig-2.1)

Installieren von Umgebungsabhängigkeiten

Bei Verwendung von Homebrew ist die installierte JDK-Version 17, da die arm64-Version von Homebrew auf macOS standardmäßig nicht JDK 8 enthält. Derzeit unterstützt Doris nur JDK8 und JDK17.

PowerShell

 

Erklärung der Abhängigkeiten

1. Java, Maven usw.. Diese können separat heruntergeladen werden, um die Verwaltung zu erleichtern.

  • Auf macOS wird Zulu JDK17 empfohlen.
  • Maven kann von der offiziellen Maven-Website heruntergeladen werden.
  • Manuell heruntergeladenes Java und Maven müssen in Ihren Umgebungsvariablen konfiguriert werden.

2. Andere Umgebungsvariablen von Abhängigkeiten (Beispiel für Apple Silicon Macs):

PowerShell

 

Fügen Sie die obigen Konfigurationen Ihrer ~/.bashrc oder ~/.zshrc-Datei hinzu und führen Sie source ~/.bashrc oder source ~/.zshrc aus, um die Änderungen anzuwenden.

Installation von Thrift

Hinweis: Thrift muss nur installiert werden, wenn Sie nur das FE (Frontend) debuggen. Wenn Sie sowohl BE (Backend) als auch FE debuggen, sind die BE-Drittanbieterbibliotheken bereits mit Thrift ausgestattet.

Plain Text

 

Ihr Code abrufen

Klonen Sie Ihren Code, indem Sie die folgenden Befehle ausführen:

PowerShell

 

Setzen von Umgebungsvariablen

PowerShell

 

Herunterladen von Doris Build-Abhängigkeiten

1. Besuchen Sie die Seite Apache Doris Third Party Prebuilt (Link), um den Quellcode für alle Drittanbieter-Bibliotheken zu finden. Sie können direkt doris-thirdparty-source.tgz herunterladen.

2. Alternativ können Sie die vorkompilierten Drittanbieter-Bibliotheken von derselben Seite herunterladen, was Sie davor bewahrt, diese Bibliotheken selbst zu kompilieren. Verwenden Sie die folgenden Befehle.

PowerShell

 

Bei der Ausführung von protoc und thrift können Sie auf Probleme beim Öffnen stoßen, die auf Entwicklerverifizierungsprobleme zurückzuführen sind. In diesem Fall wechseln Sie zu Sicherheit & Datenschutz und klicken Sie auf die Schaltfläche Trotzdem öffnen im Allgemeinen Tab, um zu bestätigen, dass Sie die Binärdatei öffnen möchten. Weitere Details finden Sie unter Apple Support.

Erhöhen des System-Maximalwertes für Dateideskriptoren

Nach der Änderung führen Sie source auf der entsprechenden Datei aus, um die Änderungen anzuwenden.

PowerShell

 

2. Kompilieren von Doris

Wechseln Sie in Ihr Doris-Verzeichnis und führen Sie das Build-Skript aus:

PowerShell

 

Wenn Sie den Build-Prozess beschleunigen möchten und die FE-Frontend-Seite nicht benötigen, können Sie den Abschnitt für den FE-UI-Build im Skript build.sh auskommentieren:

Shell

 

Nach erfolgreicher Kompilierung sollten Sie eine Ausgabe sehen, die ähnlich wie folgt aussieht:

3. Debugging

Konfigurieren der Debug-Umgebung

In diesem Leitfaden wird nur das Debuggen des Doris-FE behandelt.

Plain Text

 

Beginnen Sie mit dem Debuggen über IntelliJ IDEA.

Wichtig: Öffnen Sie nicht das Stammverzeichnis des Doris-Projekts, sondern öffnen Sie das Verzeichnis FE, um Konflikte mit CLion zu vermeiden.

Generieren von FE-Code

Öffnen Sie das IDEA-Terminal, navigieren Sie zum Stammverzeichnis des Codes und führen Sie aus:

PowerShell

 

Warten Sie, bis Sie die Meldung „Fertig“ sehen.

Konfigurieren des Debuggens für FE

1. Konfigurationen bearbeiten.

2. Fügen Sie eine DorisFE-Konfiguration hinzu. Klicken Sie auf das Symbol + oben links, um eine Anwendungskonfiguration hinzuzufügen. Beachten Sie das Bild unten für die spezifischen Einstellungen.

3. Arbeitsverzeichnis. Legen Sie es auf das Verzeichnis fe innerhalb des Quellcodes fest.

4. Umgebungsvariablen. Konfigurieren Sie die Umgebungsvariablen ähnlich wie die, die in fe/bin/start_fe.sh im Stammverzeichnis von Doris exportiert wurden. Die Variable DORIS_HOME sollte auf das Verzeichnis zeigen, das Sie während des Setups zuvor kopiert haben.

Plain Text

 


FE starten

Klicken Sie auf Ausführen oder Debuggen. Dies löst den Build-Prozess für FE aus; sobald dieser abgeschlossen ist, wird FE gestartet. In diesem Leitfaden wählen wir Debuggen.


BE starten

Da Sie das kompilierte Paket bereits in das Verzeichnis doris-run kopiert haben, starten Sie das BE von innerhalb dieses Verzeichnisses:

PowerShell

 

Fehlerbehebung FE

1. Verbindung zum FE herstellen. Verwenden Sie einen MySQL-Client oder DBeaver, um eine Verbindung zum vom IDEA gestarteten FE herzustellen.

MySQL

 

2. Fügen Sie den BE-Node dem Cluster hinzu.

MySQL

 

3. Setzen Sie Breakpoints im Code. Suchen Sie den ConnectProcessor-Code im Projekt:


Setzen Sie einen Breakpoint in der Methode handleQuery. Wenn Sie eine Abfrage ausführen, wird der Debugger den Breakpoint erreichen, und Sie können eine angenehme Debugging-Reise beginnen. Wenn Sie beispielsweise an der in vorherigen Sitzungen erwähnten Doris-Syntaxmigration arbeiten, können Sie das Debugging verwenden, um Ihren Code iterativ zu verbessern.

FAQs

Frage 1

Während der Kompilierung kann ein Sperrkonfliktfehler auftreten:

Plain Text

 

Antwort

Löschen Sie alle .lock-Dateien in Ihrem lokalen Maven-Repository, indem Sie Folgendes ausführen:

Plain Text

 

Frage 2

Während der Kompilierung kann ein Fehler durch eine neuere Version von Node.js verursacht werden:

Plain Text

 

Antwort

Legen Sie Node.js fest, um den Legacy-OpenSSL-Anbieter zu verwenden, indem Sie Folgendes ausführen:

Plain Text

 

Referenz: StackOverflow-Diskussion

Frage 3

IntelliJ IDEA startet FE nicht mit dem Fehler:

Plain Text

 

Antwort

Der Compiler von Maven verfügt möglicherweise nicht über ausreichend Speicher. Erhöhen Sie die Speicherzuweisung wie unten gezeigt:

Frage 5

IntelliJ IDEA startet FE nicht mit dem Fehler:

Plain Text

 

Antwort

Beheben Sie dieses Problem, indem Sie die folgenden Befehle im Doris-Stammverzeichnis ausführen:

Plain Text

 

Frage 5

In einigen Versionen kann die Kompilierung mit dem Fehler fehlschlagen:

Plain Text

 

Antwort

Ändern Sie den Code gemäß diesem PR oder führen Sie die folgenden Befehle aus:

Plain Text

 

Frage 6

In einigen Versionen scheitert beim Debuggen das FE auf Port 9030 zu starten, und fe.log meldet:

Plain Text

 

Antwort

Wechseln Sie zum doris/docs Verzeichnis, führen Sie die folgenden Befehle aus und starten Sie dann das FE neu:

Plain Text

 

Indem Sie dieser Anleitung folgen, sollten Sie in der Lage sein, Ihre Umgebung einzurichten, Apache Doris einfacher zu kompilieren und zu debuggen. Viel Erfolg beim Debuggen!

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