CLion を使用した BE 開発環境の構築
このドキュメントでは、BE(Backend)の開発で一般的な CLion の利用方法を二通り説明します。
- 方法 1: リモート開発(推奨)。ローカルの CLion から SSH/SFTP でリモートの Linux サーバーに接続し、コードをリモートマシンに同期してコンパイルと実行を行います。BE には完全な Linux ツールチェーンが必要なため、Doris BE の開発では最も一般的な構成です。
- 方法 2: macOS でのローカル開発。リモートサーバーを使用せず、macOS 上で直接 BE をコンパイルしてデバッグします。
方法 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 ツールチェーンを使用したコンパイルを参照してください。
./build.sh
2. ローカルの CLion でリモート開発環境を設定する
-
ローカルに CLion をダウンロードしてインストールし、Doris BE のコードをインポートします。
-
CLion で Preferences → Build, Execution, Deployment → Deployment を開き、SFTP を使用してリモート開発サーバーのログイン情報を追加します。Mappings のパスを設定します。例:
- Local Path:
/User/kaka/Programs/doris/be - Deployment Path:
/mnt/datadisk0/chenqi/clion/doris/be


- Local Path:
-
コンパイル時にリモートサーバー上で生成された
gensrcディレクトリを、Deployment Path の親ディレクトリにコピーします。cp -R /mnt/datadisk0/chenqi/doris/gensrc /mnt/datadisk0/chenqi/clion/doris/gensrc -
Preferences → Build, Execution, Deployment → Toolchains を開き、リモート環境のツールチェーン(CMake、GCC、G++、GDB など)を追加します。
重要Environment file フィールドには、リモートサーバー上の Doris コードにある
env.shのパスを入力します。
-
Preferences → Build, Execution, Deployment → CMake を開き、CMake オプションに以下を追加します。
-DDORIS_JAVA_HOME=/path/to/remote/JAVA_HOMEリモートサーバー上の
JAVA_HOMEのパスを指定します。指定しないとjni.hが見つかりません。 -
CLion で右クリックし、Load CMake Project を選択します。これにより、コードがリモートサーバーに同期され、CMake のビルドファイルが生成されます。
3. ローカルの CLion からリモートの BE を実行・デバッグする
-
Preferences → Build, Execution, Deployment → CMake で CMake を設定します。Debug や Release などのターゲットを設定し、ToolChain には先ほど設定したリモートのツールチェーンを指定します。
ユニットテストを実行・デバッグする場合は、CMake オプションに
-DMAKE_TEST=ONを追加します(デフォルトでは無効です)。 -
リモートサーバー上で
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でエクスポートされる環境変数を参考に、各変数にリモートサーバー上の対応するパスを指定します。

-
Run をクリックすると BE がコンパイルされて起動します。Debug をクリックすると BE がコンパイルされ、デバッグが始まります。
方法 2: macOS でのローカル開発
macOS では、リモートサーバーを使用せずに BE をローカルでコンパイルしてデバッグできます。始める前に、macOS でのコンパイルに記載されている依存関係のインストールとコードのチェックアウトを完了してください。
1. Doris のソースコードのルートディレクトリを開く

2. CLion を設定する
ツールチェーンを設定する: 以下の図に従って設定します。すべての検出項目に合格する必要があります。

CMake を設定する: 以下の図に従って設定します。

設定を確認すると、CLion は初回に CMake ファイルを自動的に読み込みます。自動的に読み込まれない場合は、$DORIS_HOME/be/CMakeLists.txt を右クリックして Load を選択します。
3. BE のデバッグを設定する
Edit Configurations を選択します。

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. デバッグを開始する
Run または Debug をクリックします。CLion がコンパイルを開始し、完了後に BE が起動します。

よくある質問(FAQ)
Q1: リモートでのコンパイル時に jni.h not found と表示される
CMake オプションの -DDORIS_JAVA_HOME に、リモートサーバー上の JAVA_HOME が正しく設定されていません。方法 1 のセクション 2、手順 5 を参照してください。
Q2: CLion でシンボルが見つからない、または赤い下線が大量に表示される
gensrc ディレクトリが Deployment Path の親ディレクトリにコピーされていないか、Load CMake Project をクリックして再読み込みしていません。
Q3: BE が起動直後に終了する
環境変数 DORIS_HOME、PID_DIR、LOG_DIR が設定されていないか、指定したパスが存在しません。上記の環境変数の表を確認してください。すべてのパスを事前に作成しておく必要があります。