Un guide complet pour construire et déboguer Apache Doris

Apache Doris, une base de données analytique en temps réel haute performance, vante une architecture sous-jacente et une conception de code impressionnantes. Pour les développeurs, maîtriser la compilation du code source et le débogage est essentiel pour comprendre le cœur de Doris. Cependant, le processus de construction implique de multiples chaînes d’outils et configurations de dépendances, et lors du débogage, vous pouvez rencontrer divers problèmes complexes qui peuvent laisser les débutants se sentir dépassés.

Cet article vous guide à travers le processus du code source à l’exécution, en fournissant une analyse détaillée des procédures de compilation et de débogage d’Apache Doris. De la configuration de l’environnement et du checkout du code aux solutions aux problèmes courants, nous combinons des exemples pratiques pour vous aider à démarrer rapidement le développement et le débogage avec Doris.

Aperçu

Avez-vous déjà demandé comment une requête SQL est analysée et exécutée du début à la fin ? Dans Apache Doris, ce processus implique de multiples composants principaux et mécanismes internes complexes. Cet article vous guidera à travers le voyage du code source à l’exécution, offrant une analyse complète du processus de construction et de débogage de Doris, et vous aidant à acquérir une compréhension approfondie des principes d’exécution SQL.

1. Environnement

Environnement de base

  1. Configuration de l’ordinateur. MacBook Pro (Puce : Apple M1, macOS : 15.1)
  2. JDK. Version 17
  3. Branche Doris. Utilisez la branche Doris Master (plus précisément, la branche-2.1)

Installation des dépendances de l’environnement

Lorsque vous utilisez Homebrew, la version de JDK installée est 17 car sur macOS, la version arm64 de Homebrew n’inclut pas JDK 8 par défaut. Actuellement, Doris ne prend en charge que JDK8 et JDK17.

PowerShell

 

Explication des dépendances

1. Java, Maven, etc.. Ceux-ci peuvent être téléchargés séparément pour une gestion plus facile.

  • Sur macOS, Zulu JDK17 est recommandé.
  • Maven peut être téléchargé depuis le site officiel de Maven.
  • Java et Maven téléchargés manuellement doivent être configurés dans vos variables d’environnement.

2. Variables d’environnement des autres dépendances (exemple pour les Macs Apple Silicon) :

PowerShell

 

Ajoutez les configurations ci-dessus à votre fichier ~/.bashrc ou ~/.zshrc et exécutez source ~/.bashrc ou source ~/.zshrc pour appliquer les modifications.

Installation de Thrift

Remarque : Thrift doit être installé uniquement lorsque vous déboguez uniquement le FE (Frontend). Lors du débogage à la fois du BE (Backend) et du FE, les bibliothèques tierces du BE incluent déjà Thrift.

Plain Text

 

Récupération de votre code

Clonez votre code en exécutant les commandes suivantes :

PowerShell

 

Définir des variables d’environnement

PowerShell

 

Téléchargement des dépendances de construction de Doris

1. Visitez la page Apache Doris Third Party Prebuilt (lien) pour trouver le code source de toutes les bibliothèques tierces. Vous pouvez télécharger directement doris-thirdparty-source.tgz.

2. Alternativement, vous pouvez télécharger les bibliothèques tierces précompilées depuis la même page, ce qui vous évite de compiler ces bibliothèques vous-même. Référez-vous aux commandes ci-dessous.

PowerShell

 

Lorsque vous exécutez protoc et thrift, vous pourriez rencontrer des problèmes pour les ouvrir en raison de problèmes de vérification des développeurs. Dans ce cas, allez dans Sécurité et confidentialité et cliquez sur le bouton Ouvrir quand même dans l’onglet Général pour confirmer que vous souhaitez ouvrir le binaire. Pour plus de détails, référez-vous à Support Apple.

Augmenter la limite maximale des descripteurs de fichiers du système

Après modification, exécutez source sur le fichier correspondant pour appliquer les changements.

PowerShell

 

2. Compiler Doris

Accédez à votre répertoire principal de Doris et exécutez le script de construction :

PowerShell

 

Si vous souhaitez accélérer le processus de construction et que vous n’avez pas besoin de la page frontend FE, vous pouvez commenter la section de construction de l’interface utilisateur FE dans le script build.sh :

Shell

 

Après une compilation réussie, vous devriez voir une sortie similaire à ce qui suit :

3. Débogage

Configuration de l’environnement de débogage

Ce guide couvre uniquement le débogage du Doris FE.

Plain Text

 

Démarrez le débogage en utilisant IntelliJ IDEA.

Important : Ne pas ouvrir le répertoire racine du projet Doris ; ouvrez plutôt le répertoire FE pour éviter les conflits avec CLion.

Génération du code FE

Ouvrez le terminal IDEA, naviguez jusqu’au répertoire racine du code, et exécutez :

PowerShell

 

Attendez jusqu’à ce que vous voyiez le message « Fait ».

Configuration du débogage pour FE

1. Modifier les configurations.

2. Ajouter une configuration DorisFE. Cliquez sur l’icône + dans le coin supérieur gauche pour ajouter une configuration d’application. Référez-vous à l’image ci-dessous pour les paramètres spécifiques.

3. Répertoire de travail. Réglez-le sur le répertoire fe dans le code source.

4. Variables d’environnement. Configurez les variables d’environnement de la même manière que celles exportées dans fe/bin/start_fe.sh dans le répertoire racine de Doris. La variable DORIS_HOME doit pointer vers le répertoire que vous avez copié plus tôt lors de la configuration.

Plain Text

 


Démarrage de FE

Cliquez sur Exécuter ou Déboguer. Cela déclenchera le processus de construction pour FE ; une fois terminé, le FE démarrera. Dans ce guide, nous choisissons Déboguer.


Démarrage de BE

Étant donné que vous avez déjà copié le package compilé dans le répertoire doris-run, démarrez le BE depuis ce répertoire :

PowerShell

 

Débogage FE

1. Connectez-vous au FE. Utilisez un client MySQL ou DBeaver pour vous connecter au FE lancé par IDEA.

MySQL

 

2. Ajoutez le nœud BE au cluster.

MySQL

 

3. Définissez des points d’arrêt dans le code. Localisez le code ConnectProcessor dans le projet :


Définissez un point d’arrêt dans la méthode handleQuery. Lorsque vous exécutez une requête, le débogueur atteindra le point d’arrêt, et vous pourrez commencer un agréable parcours de débogage. Par exemple, si vous travaillez sur la tâche de migration de syntaxe Doris mentionnée dans les sessions précédentes, vous pouvez utiliser le débogage pour affiner votre code de manière itérative.

FAQ

Question 1

Pendant la compilation, vous pourriez rencontrer une erreur de conflit de verrouillage :

Plain Text

 

Réponse

Supprimez tous les fichiers .lock de votre dépôt local Maven en exécutant :

Plain Text

 

Question 2

Pendant la compilation, une erreur causée par une version plus récente de Node.js peut survenir :

Plain Text

 

Réponse

Configurez Node.js pour utiliser le fournisseur OpenSSL hérité en exécutant :

Plain Text

 

Référence : Discussion StackOverflow

Question 3

IntelliJ IDEA ne parvient pas à démarrer le FE avec l’erreur :

Plain Text

 

Réponse

Le compilateur de Maven peut ne pas avoir suffisamment de mémoire. Augmentez l’allocation de mémoire comme indiqué ci-dessous :

Question 5

IntelliJ IDEA ne parvient pas à démarrer FE avec l’erreur :

Plain Text

 

Réponse

Résolvez ce problème en exécutant les commandes suivantes dans le répertoire racine de Doris :

Plain Text

 

Question 5

Dans certaines versions, la compilation peut échouer avec l’erreur :

Plain Text

 

Réponse

Modifiez le code selon cette PR ou exécutez les commandes suivantes :

Plain Text

 

Question 6

Dans certaines versions, lors du débogage, le FE sur le port 9030 ne parvient pas à démarrer, et fe.log signale :

Plain Text

 

Réponse

Rendez-vous dans le répertoire doris/docs, exécutez les commandes suivantes, puis redémarrez le FE :

Plain Text

 

En suivant ce guide, vous devriez être en mesure de configurer votre environnement, de compiler et de déboguer Apache Doris plus facilement. Bon débogage !

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