Een Uitgebreide Gids voor het Bouwen en Debuggen van Apache Doris

Apache Doris, een high-performance, real-time analytische database, pronkt met een indrukwekkende onderliggende architectuur en code ontwerp. Voor ontwikkelaars is het beheersen van de compilatie van de broncode en debugging essentieel om de kern van Doris te begrijpen. Het bouwproces omvat echter meerdere toolchains en afhankelijkheidsconfiguraties, en tijdens het debuggen kunt u verschillende complexe problemen tegenkomen die beginners overweldigd kunnen laten voelen.

Dit artikel begeleidt u door het proces van broncode tot runtime, en biedt een gedetailleerde analyse van de compilatie- en debuggingprocedures van Apache Doris. Van het opzetten van de omgeving en het uitchecken van de code tot het oplossen van veelvoorkomende problemen, combineren we praktische voorbeelden om u snel op weg te helpen met Doris ontwikkeling en debugging. 

Overzicht

Heb je je ooit afgevraagd hoe een SQL-query van begin tot eind geparseerd en uitgevoerd wordt? In Apache Doris omvat dit proces meerdere kernonderdelen en complexe interne mechanismen. Dit artikel zal u begeleiden door de reis van broncode tot runtime, met een uitgebreide analyse van het bouw- en debugproces van Doris, en u helpen een diep begrip van SQL-uitvoeringsprincipes te krijgen.

1. Omgeving

Basisomgeving

  1. Computerspecificaties. MacBook Pro (Chip: Apple M1, macOS: 15.1)
  2. JDK. Versie 17
  3. Doris tak. Gebruik de Doris Master tak (specifiek, de tak-2.1)

Het installeren van omgevingsafhankelijkheden

Wanneer je Homebrew gebruikt, is de geïnstalleerde JDK-versie 17 omdat de arm64-versie van Homebrew op macOS JDK 8 niet standaard bevat. Momenteel ondersteunt Doris alleen JDK8 en JDK17.

PowerShell

 

Uitleg van afhankelijkheden

1. Java, Maven, etc. Deze kunnen apart worden gedownload voor eenvoudiger beheer.

  • Op macOS wordt Zulu JDK17 aanbevolen.
  • Maven kan worden gedownload van de officiële Maven-website.
  • Handmatig gedownloade Java en Maven moeten geconfigureerd worden in je omgevingsvariabelen.

2. Omgevingsvariabelen van andere afhankelijkheden (voorbeeld voor Apple Silicon Macs):

PowerShell

 

Voeg de bovenstaande configuraties toe aan je ~/.bashrc of ~/.zshrc bestand en voer source ~/.bashrc of source ~/.zshrc uit om de wijzigingen toe te passen.

Het installeren van Thrift

Let op: Thrift moet alleen worden geïnstalleerd wanneer je alleen de FE (Frontend) debugt. Bij het debuggen van zowel BE (Backend) als FE zijn de BE third-party libraries al inclusief Thrift.

Plain Text

 

Het ophalen van je code

Kloon je code door de volgende commando’s uit te voeren:

PowerShell

 

Omgevingsvariabelen Instellen

PowerShell

 

Afhankelijkheden voor de Doris Build Downloaden

1. Bezoek de Apache Doris Derde Partij Voorafgebouwd pagina (link) om de broncode voor alle derde partij bibliotheken te vinden. Je kunt doris-thirdparty-source.tgz rechtstreeks downloaden.

2. Als alternatief kun je de vooraf gecompileerde derde partij bibliotheken van dezelfde pagina downloaden, wat je bespaart van het zelf compileren van deze bibliotheken. Raadpleeg de onderstaande commando’s.

PowerShell

 

Bij het uitvoeren van protoc en thrift kun je problemen tegenkomen bij het openen ervan vanwege ontwikkelaarsverificatieproblemen. In dat geval ga je naar Beveiliging & Privacy en klik je op de knop Open Toch in het tabblad Algemeen om te bevestigen dat je de binaire wilt openen. Voor meer details, zie Apple Support.

Systeem Maximum Bestandsdescriptor Limiet Verhogen

Na het aanpassen, voer source uit op het overeenkomstige bestand om de wijzigingen toe te passen.

PowerShell

 

2. Doris Compileren

Navigeer naar je Doris thuismap en voer het buildscript uit:

PowerShell

 

Als je het buildproces wilt versnellen en je hebt de FE frontendpagina niet nodig, kun je de FE UI buildsectie in het build.sh script uitcommentariëren:

Shell

 

Na een succesvolle compilatie zou je een uitvoer moeten zien die vergelijkbaar is met het volgende:

3. Debuggen

Configureren van de Debugomgeving

Deze handleiding behandelt alleen het debuggen van Doris FE.

Plain Text

 

Start met debuggen in IntelliJ IDEA. 

Belangrijk: Open de hoofdmap van het Doris-project niet; open in plaats daarvan de FE map om conflicten met CLion te voorkomen.

Genereren van FE Code

Open de IDEA-terminal, navigeer naar de hoofdmap van de code en voer uit:

PowerShell

 

Wacht tot je de boodschap “Klaar” ziet verschijnen.

Configureren van Debug voor FE

1. Wijzig configuraties.

2. Voeg een DorisFE-configuratie toe. Klik op het pictogram + linksboven om een toepassingsconfiguratie toe te voegen. Raadpleeg de afbeelding hieronder voor de specifieke instellingen.

3. Werkmap. Stel deze in op de fe map binnen de broncode.

4. Omgevingsvariabelen. Configureer de omgevingsvariabelen op een vergelijkbare manier als die geëxporteerd zijn in fe/bin/start_fe.sh in de hoofdmap van Doris. De variabele DORIS_HOME moet verwijzen naar de map die je eerder tijdens de installatie hebt gekopieerd.

Plain Text

 


Starten van FE

Klik op Run of Debug. Hiermee wordt het bouwproces voor FE gestart; zodra dit is voltooid, zal de FE starten. In deze handleiding kiezen we voor Debug.


Starten van BE

Aangezien je het gecompileerde pakket al hebt gekopieerd naar de doris-run map, start de BE vanuit die map:

PowerShell

 

Debugging FE

1. Verbind met de FE. Gebruik een MySQL-client of DBeaver om verbinding te maken met de FE die door IDEA is gestart.

MySQL

 

2. Voeg de BE-knoop toe aan de cluster.

MySQL

 

3. Zet breekpunten in de code. Zoek de ConnectProcessor code in het project:


Zet een breekpunt bij de handleQuery methode. Wanneer je een query uitvoert, zal de debugger het breekpunt raken, en kun je beginnen aan een plezierige debuggingreis. Als je bijvoorbeeld werkt aan de Doris-syntaxis migratietaak die in eerdere sessies is genoemd, kun je debugging gebruiken om je code iteratief te verfijnen.

FAQs

Vraag 1

Tijdens de compilatie kun je een vergrendelingsconflict fout tegenkomen:

Plain Text

 

Antwoord

Verwijder alle .lock bestanden in je lokale Maven-repository door het volgende uit te voeren:

Plain Text

 

Vraag 2

Tijdens de compilatie kan een fout optreden door een nieuwere versie van Node.js:

Plain Text

 

Antwoord

Stel Node.js in om de legacy OpenSSL-provider te gebruiken door het volgende uit te voeren:

Plain Text

 

Referentie: StackOverflow Discussie

Vraag 3

IntelliJ IDEA kan de FE niet starten met de fout:

Plain Text

 

Antwoord

De compiler van Maven heeft mogelijk niet genoeg geheugen. Verhoog de geheugentoewijzing zoals hieronder weergegeven:

Vraag 5

IntelliJ IDEA kan FE niet starten met de fout:

Plain Text

 

Antwoord

Los dit probleem op door de volgende commando’s uit te voeren in de rootdirectory van Doris:

Plain Text

 

Vraag 5

In sommige versies kan de compilatie mislukken met de fout:

Plain Text

 

Antwoord

Wijzig de code volgens deze PR of voer de volgende commando’s uit:

Plain Text

 

Vraag 6

In sommige versies mislukt het debuggen, en kan FE op poort 9030 niet starten, en fe.log meldt:

Plain Text

 

Antwoord

Navigeer naar de doris/docs directory, voer de volgende commando’s uit en herstart dan FE:

Plain Text

 

Door deze gids te volgen, zou je in staat moeten zijn om je omgeving op te zetten, te compileren en Apache Doris eenvoudiger te debuggen. Veel succes met debuggen!

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