Полное руководство по созданию и отладке Apache Doris

Apache Doris, высокопроизводительная база данных для реального времени аналитики, хвалится впечатляющей базовой архитектурой и дизайном кода. Для разработчиков владение компиляцией и отладкой исходного кода является ключом к пониманию основ Doris. Однако процесс сборки включает в себя несколько цепочек инструментов и настроек зависимостей, и во время отладки вы можете столкнуться с различными сложными проблемами, которые могут заставить начинающих почувствовать себя подавленными.

В этой статье мы проведем вас через процесс от исходного кода до выполнения, предоставляя подробный анализ процедур компиляции и отладки Apache Doris. От настройки окружения и проверки кода до устранения распространенных проблем, мы объединим практические примеры, чтобы помочь вам быстро начать работу с разработкой и отладкой Doris.

Обзор

Вы когда-нибудь задумывались, как SQL-запрос разбирается и выполняется от начала до конца? В Apache Doris этот процесс включает в себя несколько основных компонентов и сложных внутренних механизмов. Эта статья проведет вас через путешествие от исходного кода до выполнения, предлагая полный анализ процесса сборки и отладки Doris и помогая вам глубоко понять принципы выполнения SQL-запросов.

1. Окружение

Базовое окружение

  1. Конфигурация компьютера. MacBook Pro (Чип: Apple M1, macOS: 15.1)
  2. JDK. Версия 17
  3. Ветка Doris. Используйте ветку Doris Master (конкретно, ветку branch-2.1)

Установка зависимостей среды

При использовании Homebrew установленная версия JDK – 17, так как на macOS версия arm64 Homebrew по умолчанию не включает JDK 8. В настоящее время Doris поддерживает только JDK8 и JDK17.

PowerShell

 

Объяснение зависимостей

1. Java, Maven и т. д.. Их можно скачать отдельно для более удобного управления.

  • На macOS рекомендуется использовать Zulu JDK17.
  • Maven можно скачать с официального сайта Maven.
  • Скачанные вручную Java и Maven необходимо настроить в ваших переменных окружения.

2. Переменные окружения других зависимостей (пример для Mac с Apple Silicon):

PowerShell

 

Добавьте указанные выше конфигурации в ваш файл ~/.bashrc или ~/.zshrc и выполните source ~/.bashrc или source ~/.zshrc, чтобы применить изменения.

Установка Thrift

Примечание: Thrift необходимо устанавливать только при отладке только FE (фронтенда). При отладке как BE (бэкенда), так и 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, вы можете закомментировать раздел сборки UI 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