Перейти к содержимому
Последнее обновление

Настройка среды разработки 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​

  1. Скачайте и установите CLion локально, затем импортируйте код BE Doris.

  2. В CLion откройте Настройки → Сборка, выполнение, развёртывание → Развёртывание и добавьте данные для входа на удалённый сервер разработки, используя SFTP. Настройте пути в разделе Сопоставления, например:

    • Локальный путь: /User/kaka/Programs/doris/be
    • Путь развёртывания: /mnt/datadisk0/chenqi/clion/doris/be

    Развёртывание1

    Развёртывание2

  3. Скопируйте каталог gensrc, созданный на удалённом сервере при компиляции, в родительский каталог для пути, указанного в поле Путь развёртывания:

    cp -R /mnt/datadisk0/chenqi/doris/gensrc /mnt/datadisk0/chenqi/clion/doris/gensrc
  4. Откройте Настройки → Сборка, выполнение, развёртывание → Наборы инструментов и добавьте набор инструментов для удалённой среды (CMake, GCC, G++, GDB и т. д.).

    Важно

    В поле Файл окружения укажите путь к файлу env.sh в исходном коде Doris на удалённом сервере.

    Наборы инструментов

  5. Откройте Настройки → Сборка, выполнение, развёртывание → CMake и добавьте следующее в параметры CMake:

    -DDORIS_JAVA_HOME=/path/to/remote/JAVA_HOME

    Укажите здесь путь JAVA_HOME на удалённом сервере. Иначе файл jni.h не будет найден.

  6. В CLion щёлкните правой кнопкой мыши и выберите Загрузить проект CMake. Это действие синхронизирует код с удалённым сервером и создаёт файлы сборки CMake.

3. Запускайте и отлаживайте удалённый BE из локальной CLion​

  1. Настройте CMake в разделе Настройки → Сборка, выполнение, развёртывание → CMake. Можно настроить разные цели, например Debug или Release, и в поле Набор инструментов выбрать ранее настроенный удалённый набор инструментов.

    Для запуска и отладки модульных тестов добавьте -DMAKE_TEST=ON в параметры CMake (по умолчанию этот параметр выключен).

  2. На удалённом сервере скопируйте каталог output в отдельный каталог:

    cp -R /mnt/datadisk0/chenqi/doris/output /mnt/datadisk0/chenqi/clion/doris/doris_be

    Структура выходного каталога

  3. В CLion выберите цель doris_be (Debug или Release) и настройте её. Ориентируйтесь на переменные окружения, экспортируемые в be/bin/start_be.sh, и укажите для каждой переменной соответствующий путь на удалённом сервере:

    Конфигурация запуска и отладки1 Конфигурация запуска и отладки2

  4. Нажмите Запуск, чтобы скомпилировать и запустить BE, или Отладка, чтобы скомпилировать и отладить BE.

Вариант 2: локальная разработка в macOS​

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

1. Откройте корневой каталог исходного кода Doris​

развёртывание1

2. Настройте CLion​

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

развёртывание2

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

развёртывание3

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

3. Настройте отладку BE​

Выберите «Изменить конфигурации»:

развёртывание4

Добавьте переменные окружения для 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_LANGAMERICAN_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

развёртывание5 развёртывание6

4. Начните отладку​

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

развёртывание7

Часто задаваемые вопросы​

Вопрос 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 не настроены либо указанные пути не существуют. Проверьте таблицу переменных окружения выше; все каталоги по указанным путям должны быть созданы заранее.