Doris Compute-Storage分離デプロイメントの準備
1. 概要
このドキュメントでは、Apache Dorisのcompute-storage分離モードのデプロイメント準備作業について説明します。分離アーキテクチャは、システムのスケーラビリティとパフォーマンスの向上を目的とし、大規模なデータ処理シナリオに適しています。
2. アーキテクチャコンポーネント
Dorisのcompute-storage分離アーキテクチャは、3つの主要モジュールで構成されています:
- Frontend (FE): ユーザーリクエストを処理し、メタデータを管理します。
- Backend (BE): クエリタスクを実行するステートレスなコンピュートノードです。
- Meta Service (MS): メタデータ操作とデータリカバリを管理します。
3. システム要件
3.1 ハードウェア要件
- 最小構成: 3台のサーバー
- 推奨構成: 5台以上のサーバー
3.2 ソフトウェア依存関係
- FoundationDB (FDB) バージョン7.1.38以上
- OpenJDK 17
4. デプロイメント計画
4.1 テスト環境でのデプロイメント
すべてのモジュールを1台のマシンにデプロイします。本番環境には適していません。
4.2 本番環境でのデプロイメント
- FDBを3台以上のマシンにデプロイ
- FEとMeta Serviceを3台以上のマシンにデプロイ
- BEを3台以上のマシンにデプロイ
マシンの構成が高い場合は、FDB、FE、Meta Serviceを混在させることを検討できますが、ディスクは混在させないでください。
5. インストール手順
5.1 FoundationDBのインストール
このセクションでは、提供されたスクリプトfdb_vars.shとfdb_ctl.shを使用して、FoundationDB (FDB)サービスを構成、デプロイ、および開始する手順を説明します。Dorisリリースパッケージをダウンロードした後、これらのスクリプトはtools/fdbディレクトリで見つけることができます。
Dorisは現在、デフォルトでFDBバージョン7.1.xに依存しています。すでにFDBを別途インストールしている場合は、バージョン7.1.xであることを確認してください。そうでなければ、Meta Serviceの開始に失敗します。
5.1.1 マシン要件
通常、SSDを搭載した少なくとも3台のマシンが、二重データレプリカを持つFoundationDBクラスターを形成し、単一マシンの障害に対応するために必要です。 SSDが利用できない場合は、データストレージに標準的なクラウドディスクまたは標準のPOSIX準拠ファイルシステムを持つローカルディスクを少なくとも使用する必要があります。そうでなければ、FoundationDBは正常に動作しない可能性があります - 例えば、JuiceFSなどのストレージソリューションはFoundationDBの基盤ストレージとして使用すべきではありません。
開発/テスト目的のみであれば、単一マシンで十分です。
5.1.2 fdb_vars.shの設定
必須のカスタム設定
| パラメータ | 説明 | タイプ | 例 | 注意事項 |
|---|---|---|---|---|
DATA_DIRS | FoundationDBストレージのデータディレクトリを指定 | 絶対パスのカンマ区切りリスト | /mnt/foundationdb/data1,/mnt/foundationdb/data2,/mnt/foundationdb/data3 | - スクリプト実行前にディレクトリを作成することを確認 - 本番環境ではSSDと個別のディレクトリを推奨 |
FDB_CLUSTER_IPS | クラスターIPを定義 | 文字列(カンマ区切りIPアドレス) | 172.200.0.2,172.200.0.3,172.200.0.4 | - 本番クラスターには少なくとも3つのIPアドレス - 最初のIPがcoordinatorとして使用される - 高可用性のため、マシンを異なるラックに配置 |
FDB_HOME | FoundationDBのメインディレクトリを定義 | 絶対パス | /fdbhome | - デフォルトパスは/fdbhome - このパスが絶対パスであることを確認 |
FDB_CLUSTER_ID | クラスターIDを定義 | 文字列 | SAQESzbh | - 各クラスターIDは一意である必要がある - mktemp -u XXXXXXXXを使用して生成可能 |
FDB_CLUSTER_DESC | FDBクラスターの説明を定義 | 文字列 | dorisfdb | - デプロイメントにとって意味のある名前に変更することを推奨 |
オプションのカスタム設定
| パラメータ | 説明 | タイプ | 例 | 注意事項 |
|---|---|---|---|---|
MEMORY_LIMIT_GB | FDBプロセスのメモリ制限をGBで定義 | 整数 | MEMORY_LIMIT_GB=16 | 利用可能なメモリリソースとFDBプロセス要件に基づいてこの値を調整 |
CPU_CORES_LIMIT | FDBプロセスのCPUコア制限を定義 | 整数 | CPU_CORES_LIMIT=8 | 利用可能なCPUコア数とFDBプロセス要件に基づいてこの値を設定 |
5.1.3 FDBクラスターのデプロイ
fdb_vars.shで環境を設定した後、fdb_ctl.shスクリプトを使用して各ノードでFDBクラスターをデプロイできます。
./fdb_ctl.sh deploy
このコマンドはFDBクラスターのデプロイメントプロセスを開始します。
5.1.4 FDBサービスの開始
FDBクラスターがデプロイされると、fdb_ctl.shスクリプトを使用して各ノードでFDBサービスを開始できます。
./fdb_ctl.sh start
このコマンドはFDBサービスを開始し、クラスターを運用可能にして、MetaServiceの設定に使用できるFDBクラスター接続文字列を取得します。
5.2 OpenJDK 17のインストール
- OpenJDK 17をダウンロードする
- 展開して環境変数JAVA_HOMEを設定する
6. 次のステップ
上記の準備が完了したら、以下のドキュメントを参照してデプロイメントを続けてください:
7. 注意事項
- 全てのノードで時刻同期を確実に行う
- FoundationDBデータを定期的にバックアップする
- 実際の負荷に基づいてFoundationDBとDorisの設定パラメータを調整する
- データストレージには標準のクラウドディスクまたはPOSIX準拠のファイルシステムを持つローカルディスクを使用する。そうでなければ、FoundationDBが正常に動作しない可能性があります。
- 例えば、JuiceFSのようなストレージソリューションはFoundationDBのストレージバックエンドとして使用すべきではありません。