Настройка среды разработки BE в CLion
В этом документе описаны два типичных режима разработки BE (Backend) в CLion:
- Вариант 1: удалённая разработка (рекомендуется). Локальная среда CLion подключается к удалённому серверу Linux по SSH/SFTP, а код синхронизируется с удалённой машиной для компиляции и выполнения. Это наиболее распространённая конфигурация для разработки BE в Doris, поскольку для BE требуется полноценный набор инструментов Linux.
- Вариант 2: локальная разработка в macOS. Компилируйте и отлаживайте BE непосредственно в macOS без удалённого сервера.
Вариант 1: удалённая разработка (Linux)
1. Скачайте и скомпилируйте код на удалённом сервере
На удалённом сервере Linux скачайте и скомпилируйте Doris:
git clone https://github.com/apache/doris.git
cd doris
Отредактируйте env.sh, добавив в начале настройку DORIS_HOME, например:
DORIS_HOME=/mnt/datadisk0/chenqi/doris
Запустите сборку (подробное описание процесса см. в разделе Компиляция с LDB Toolchain):
./build.sh
2. Настройте среду удалённой разработки в локальной CLion
-
Скачайте и установите CLion локально, затем импортируйте код BE Doris.
-
В CLion откройте Настройки → Сборка, выполнение, развёртывание → Развёртывание и добавьте данные для входа на удалённый сервер разработки, используя SFTP. Настройте пути в разделе Сопоставления, например:
- Локальный путь:
/User/kaka/Programs/doris/be - Путь развёртывания:
/mnt/datadisk0/chenqi/clion/doris/be


- Локальный путь:
-
Скопируйте каталог
gensrc, созданный на удалённом сервере при компиляции, в родительский каталог для пути, указанного в поле Путь развёртывания:cp -R /mnt/datadisk0/chenqi/doris/gensrc /mnt/datadisk0/chenqi/clion/doris/gensrc -
Откройте Настройки → Сборка, выполнение, развёртывание → Наборы инструментов и добавьте набор инструментов для удалённой среды (CMake, GCC, G++, GDB и т. д.).
ВажноВ поле Файл окружения укажите путь к файлу
env.shв исходном коде Doris на удалённом сервере.
-
Откройте Настройки → Сборка, выполнение, развёртывание → CMake и добавьте следующее в параметры CMake:
-DDORIS_JAVA_HOME=/path/to/remote/JAVA_HOMEУкажите здесь путь
JAVA_HOMEна удалённом сервере. Иначе файлjni.hне будет найден. -
В CLion щёлкните правой кнопкой мыши и выберите Загрузить проект CMake. Это действие синхронизирует код с удалённым сервером и создаёт файлы сборки CMake.
3. Запускайте и отлаживайте удалённый BE из локальной CLion
-
Настройте CMake в разделе Настройки → Сборка, выполнение, развёртывание → CMake. Можно настроить разные цели, например Debug или Release, и в поле Набор инструментов выбрать ранее настроенный удалённый набор инструментов.
Для запуска и отладки модульных тестов добавьте
-DMAKE_TEST=ONв параметры CMake (по умолчанию этот параметр выключен). -
На удалённом сервере скопируйте каталог
outputв отдельный каталог:cp -R /mnt/datadisk0/chenqi/doris/output /mnt/datadisk0/chenqi/clion/doris/doris_be
-
В CLion выберите цель
doris_be(Debug или Release) и настройте её. Ориентируйтесь на переменные окружения, экспортируемые вbe/bin/start_be.sh, и укажите для каждой переменной соответствующий путь на удалённом сервере:

-
Нажмите Запуск, чтобы скомпилировать и запустить BE, или Отладка, чтобы скомпилировать и отладить BE.
Вариант 2: локальная разработка в macOS
В macOS можно компилировать и отлаживать BE полностью локально, без удалённого сервера. Прежде чем начать, установите зависимости и получите исходный код, как описано в разделе Компиляция в macOS.
1. Откройте корневой каталог исходного кода Doris

2. Настройте CLion
Настройка набора инструментов: выполните настройку согласно рисунку ниже. Все проверки должны пройти успешно.

Настройка CMake: выполните настройку согласно рисунку ниже.

После подтверждения настроек CLion автоматически выполняет первую загрузку файла CMake. Если файл не загрузился автоматически, щёлкните правой кнопкой мыши по $DORIS_HOME/be/CMakeLists.txt и выберите «Загрузить».
3. Настройте отладку BE
Выберите «Изменить конфигурации»:

Добавьте переменные окружения для doris_be. Ориентируйтесь на переменные окружения, экспортируемые в be/bin/start_be.sh. Пути к каталогам Doris в переменных окружения должны указывать на скопированный вами каталог среды выполнения. Пример переменных окружения:
| Переменная окружения | Пример значения | Описание |
|---|---|---|
JAVA_OPTS | -Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -DJDBC_MIN_POOL=1 -DJDBC_MAX_POOL=100 -DJDBC_MAX_IDLE_TIME=300000 | Аргументы запуска JVM |
LOG_DIR | ~/DorisDev/doris-run/be/log | Каталог журналов BE |
NLS_LANG | AMERICAN_AMERICA.AL32UTF8 | Кодировка Oracle JDBC |
ODBCSYSINI | ~/DorisDev/doris-run/be/conf | Каталог конфигурации ODBC |
PID_DIR | ~/DorisDev/doris-run/be/log | Каталог файлов PID |
UDF_RUNTIME_DIR | ~/DorisDev/doris-run/be/lib/udf-runtime | Каталог среды выполнения UDF |
DORIS_HOME | ~/DorisDev/doris-run/be | Каталог среды выполнения BE |
JAVA_OPTS=-Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -DJDBC_MIN_POOL=1 -DJDBC_MAX_POOL=100 -DJDBC_MAX_IDLE_TIME=300000
LOG_DIR=~/DorisDev/doris-run/be/log
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
ODBCSYSINI=~/DorisDev/doris-run/be/conf
PID_DIR=~/DorisDev/doris-run/be/log
UDF_RUNTIME_DIR=~/DorisDev/doris-run/be/lib/udf-runtime
DORIS_HOME=~/DorisDev/doris-run/be

4. Начните отладку
Нажмите Запуск или Отладка. CLion начнёт компиляцию, а после её завершения запустится BE.

Часто задаваемые вопросы
Вопрос 1: при удалённой компиляции возникает ошибка jni.h not found
В параметрах CMake значение -DDORIS_JAVA_HOME неверно указывает на удалённый JAVA_HOME. См. шаг 5 в подразделе 2 варианта 1.
Вопрос 2: CLion не находит символы или показывает много красных подчёркиваний
Каталог gensrc не был скопирован в родительский каталог пути развёртывания либо для повторной загрузки не была выбрана команда Загрузить проект CMake.
Вопрос 3: BE завершает работу сразу после запуска
Переменные окружения DORIS_HOME, PID_DIR или LOG_DIR не настроены либо указанные пути не существуют. Проверьте таблицу переменных окружения выше; все каталоги по указанным путям должны быть созданы заранее.