分離ストレージコンピュートクラスタを手動でデプロイする
環境チェック、クラスタプランニング、オペレーティングシステムチェックなどの前提条件チェックとプランニングが完了した後、クラスタのデプロイを開始できます。デプロイプロセスは8つのステップで構成されます:
-
FoundationDBクラスタの準備:既存のFoundationDBクラスタを使用するか、新しいものを作成できます;
-
S3またはHDFSサービスのデプロイ:既存の共有ストレージを使用するか、新しい共有ストレージを作成できます;
-
Meta Serviceのデプロイ:DorisクラスタのMeta Serviceをデプロイします;
-
データ回収プロセスのデプロイ:オプションで、Dorisクラスタ用に独立したデータ回収プロセスをデプロイします;
-
FE Masterノードの起動:最初のFEノードをMaster FEノードとして起動します;
-
FE Masterクラスタの作成:FE Follower/ObserverノードをFEクラスタに追加してクラスタを形成します;
-
BEノードの追加:BEノードをクラスタに追加・登録します;
-
Storage Vaultの追加:共有ストレージを使用して1つ以上のStorage Vaultを作成します。
ステップ1:FoundationDBの準備
このセクションでは、fdb_vars.shとfdb_ctl.shスクリプトを使用してFoundationDB(FDB)サービスを設定、デプロイ、開始するためのステップバイステップの手順を提供します。doris toolsをダウンロードし、fdbディレクトリからfdb_vars.shとfdb_ctl.shを取得できます。
Dorisは現在、デフォルトでFDBバージョン7.1.xに依存しています。すでにFDBを別途インストールしている場合は、バージョン7.1.xであることを確認してください。そうでなければ、Meta Serviceの起動に失敗します。
-
マシン要件
通常、二重データレプリカを持つFoundationDBクラスタを形成し、単一マシンの障害に対応するには、SSDを搭載した少なくとも3台のマシンが必要です。テスト/開発環境では、単一のマシンでFoundationDBをセットアップできます。
-
fdb_vars.shスクリプトの設定fdb_vars.shスクリプトを設定する際は、以下の設定を必ず指定する必要があります:
Parameter 詳細 タイプ Example 注 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がコーディネーターとして使用される - 高可用性のため、マシンは異なるラックに配置 FDB_HOME FoundationDBホームディレクトリを定義 絶対パス /fdbhome - デフォルトパスは/fdbhome - このパスが絶対パスであることを確認 FDB_CLUSTER_ID クラスタIDを定義 文字列 SAQESzbh - IDは各クラスタで一意である必要がある - mktemp -u XXXXXXXXを使用して生成FDB_CLUSTER_DESC FDBクラスタの説明を定義 文字列 dorisfdb - デプロイに意味のある名前に変更することを推奨 以下のオプションのカスタム設定も指定できます:
Parameter 詳細 タイプ Example 注 MEMORY_LIMIT_GB FDBメモリ制限を定義 整数 32 - 利用可能なシステムメモリに基づいてメモリ制限を設定 -
FDBクラスタのデプロイ
fdb_vars.shを使用して環境を設定した後、fdb_ctl.shスクリプトを使用して各ノードでFDBクラスタをデプロイできます。./fdb_ctl.sh deploy
このコマンドはFDBクラスターのデプロイメントプロセスを開始します。
-
FDBサービスの開始
FDBクラスターがデプロイされた後、
fdb_ctl.shスクリプトを使用してFDBサービスを開始できます。./fdb_ctl.sh start
このコマンドはFDBサービスを開始し、クラスターをオンラインにしてFDBクラスター接続文字列を取得します。この接続文字列はMetaServiceの設定に使用できます。
fdb_ctl.shスクリプトの'clean'コマンドは、すべてのFDBメタデータをクリアするため、データ損失を引き起こす可能性があります。本番環境でこのコマンドを使用することは厳格に禁止されています!
ステップ2:S3/HDFSサービスのインストール(オプション)
ストレージ・コンピュート分離モードのApache Dorisは、S3またはHDFSサービス上にデータを保存します。これらのサービスが既にセットアップされている場合は、直接使用できます。 そうでなければ、このドキュメントではMinIOの簡単なデプロイメントガイドを提供します:
-
MinIO download pageにアクセスして、適切なバージョンとオペレーティングシステムを選択し、対応するServerとClientのバイナリまたはインストールパッケージをダウンロードしてください。
-
MinIO Serverを開始
export MINIO_REGION_NAME=us-east-1
export MINIO_ROOT_USER=minio # In older versions, this configuration was MINIO_ACCESS_KEY=minio
export MINIO_ROOT_PASSWORD=minioadmin # In older versions, this configuration was MINIO_SECRET_KEY=minioadmin
nohup ./minio server /mnt/data 2>&1 & -
MinIO Clientの設定
# If you installed the client using the installation package, the client name is mcli. If you downloaded the client binary package, it is named mc
./mc config host add myminio http://127.0.0.1:9000 minio minioadmin -
バケットを作成する
./mc mb myminio/doris -
正しく動作していることを確認する
# Upload a file
./mc mv test_file myminio/doris
# List the file
./mc ls myminio/doris
ステップ 3: Meta Service デプロイメント
-
設定
./conf/doris_cloud.confファイル内で、以下の2つのパラメータを修正する必要があります:brpc_listen_port:Meta Service のリスニングポート、デフォルトは 5000 です。fdb_cluster:FoundationDB クラスターへの接続情報で、FoundationDB デプロイメント時に取得できます。(Doris が提供するfdb_ctl.sh を使用している場合、この値は$FDB_HOME/conf/fdb.clusterファイル内で確認できます)。
設定例:
brpc_listen_port = 5000
fdb_cluster = xxx:yyy@127.0.0.1:4500
注意: fdb_clusterの値は、FoundationDBデプロイメントマシンの/etc/foundationdb/fdb.clusterファイルの内容と一致する必要があります(DorisによってプロバイダされるfDB_ctl.shを使用している場合、この値は$FDB_HOME/conf/fdb.clusterファイルから取得できます)。
例として、ファイルの最後の行がdoris_cloud.confファイルのfdb_clusterフィールドに記入する値です:
cat /etc/foundationdb/fdb.cluster
DO NOT EDIT!
This file is auto-generated, it is not to be edited by hand.
cloud_ssb:A83c8Y1S3ZbqHLL4P4HHNTTw0A83CuHj@127.0.0.1:4500
-
開始と停止
開始する前に、
JAVA_HOME環境変数がOpenJDK 17を正しく指していることを確認し、msディレクトリに入ってください。開始コマンドは以下の通りです:
export JAVA_HOME=${path_to_jdk_17}
bin/start.sh --daemon
start スクリプトからの戻り値が 0 の場合は正常に開始されたことを示し、そうでなければ開始が失敗したことを示します。正常に開始された場合、標準出力の最後の行に "doris_cloud start successfully" が表示されます。
stop コマンドは以下の通りです:
bin/stop.sh
本番環境では、少なくとも3つのMeta Serviceノードが利用可能であることを確認してください。
Step 4: データリサイクル機能の独立デプロイ(オプション)
Meta Service自体にはメタデータ管理とリサイクル機能があり、これら2つの機能は独立してデプロイできます。独立してデプロイしたい場合は、このセクションを参照してください。
-
新しい作業ディレクトリ(例:
recycler)を作成し、msディレクトリの内容を新しいディレクトリにコピーします:cp -r ms recycler -
新しいディレクトリの設定ファイルでBRPCリッスンポート
brpc_listen_portとfdb_clusterの値を変更します。データリサイクリング機能を開始するには:
export JAVA_HOME=${path_to_jdk_17}
bin/start.sh --recycler --daemon
メタデータ操作機能のみを開始するには:
export JAVA_HOME=${path_to_jdk_17}
bin/start.sh --meta-service --daemon
ステップ5: FE Masterノードの起動
-
fe.confファイルの設定fe.confファイルで、以下の主要パラメータを設定する必要があります:deploy_mode- 説明: Dorisの起動モードを指定します
- 形式: ストレージ・コンピュート分離モードの場合は
cloud、その他のモードではストレージ・コンピュート統合 - 例:
cloud
cluster_id- 説明: ストレージ・コンピュート分離アーキテクチャにおけるクラスターの一意識別子。異なるクラスターは異なる
cluster_idを持つ必要があります。 - 形式: 整数型
- 例: 以下のshellスクリプト
echo $(($((RANDOM << 15)) | $RANDOM))を使用してランダムIDを生成できます。 - 注意: 異なるクラスターは異なる
cluster_idを持つ必要があります。
- 説明: ストレージ・コンピュート分離アーキテクチャにおけるクラスターの一意識別子。異なるクラスターは異なる
meta_service_endpoint- 説明: Meta Serviceのアドレスとポート
- 形式:
IPアドレス:ポート - 例:
127.0.0.1:5000、複数のMeta Serviceはカンマで区切って設定できます。
-
FE Masterノードの起動
起動コマンドの例:
bin/start_fe.sh --daemon
最初のFEプロセスはクラスタを初期化し、FOLLOWER役割として動作します。MySQLクライアントを使用してFEに接続し、show frontendsを使用して、開始したばかりのFEがマスターであることを確認してください。
Step 6: FE Follower/Observer ノードの登録と追加
他のノードも同様に設定ファイルを変更し、同じ手順に従って開始する必要があります。MySQLクライアントを使用してMaster役割のFEに接続し、以下のSQLコマンドで追加のFEノードを追加してください:
ALTER SYSTEM ADD FOLLOWER "host:port";
host:portを実際のFEノードのアドレスに置き換え、ログポートを編集してください。詳細については、ADD FOLLOWERおよびADD OBSERVERを参照してください。
本番環境では、最初のFEを含むFOLLOWERロールのFEノードの総数が奇数になるようにしてください。通常、3つのFOLLOWERノードで十分です。OBSERVERロールのFEノードの数は任意です。
ステップ7: BEノードの追加
クラスターにBackendノードを追加するには、各Backendに対して以下の手順を実行してください:
-
be.confの設定be.confファイルで、以下の主要パラメータを設定する必要があります:- deploy_mode
- 説明: dorisの起動モードを指定
- 形式: cloudはストレージとコンピューティングの分離モードを示し、その他はストレージとコンピューティングの統合モードを示す
- 例: cloud
- file_cache_path
- 説明: ファイルキャッシュに使用されるディスクパスとその他のパラメータ。配列形式で表現され、各ディスクが1つのアイテムになります。pathはディスクパスを指定し、total_sizeはキャッシュサイズを制限します。-1または0はディスク全体の容量を使用します。
- 形式: [{"path":"/path/to/file_cache", "total_size":21474836480}, {"path":"/path/to/file_cache2", "total_size":21474836480}]
- 例: [{"path":"/path/to/file_cache", "total_size":21474836480}, {"path":"/path/to/file_cache2", "total_size":21474836480}] - デフォルト: [{"path":"${DORIS_HOME}/file_cache"}]
- deploy_mode
-
BEプロセスの開始
以下のコマンドを使用してBackendを開始します:
bin/start_be.sh --daemon -
クラスターにBEを追加する:
MySQLクライアントを使用して任意のFrontendに接続し、以下を実行する:
ALTER SYSTEM ADD BACKEND "<ip>:<heartbeat_service_port>" [PROPERTIES properties];
<ip>を新しいBackendのIPアドレスに、<heartbeat_service_port>を設定されたheartbeat service port(デフォルトは9050)に置き換えてください。
PROPERTIESを使用してBEが配置されているcompute groupを指定できます。
より詳細な使用方法については、ADD BACKENDおよびREMOVE BACKENDを参照してください。
-
BEステータスの確認
Backendログファイル(
be.log)を確認して、正常に起動しクラスタに参加していることを確認してください。以下のSQLコマンドを使用してBackendステータスを確認することもできます:
SHOW BACKENDS;
これによりクラスター内のすべてのBackendノードとその現在のステータスが表示されます。
Step 8: Storage Vaultの追加
Storage VaultはDorisのストレージとコンピューティングの分離アーキテクチャにおける重要なコンポーネントです。データが保存される共有ストレージ層を表します。HDFSまたはS3互換のオブジェクトストレージを使用して、1つ以上のStorage Vaultを作成できます。1つのStorage VaultをデフォルトのStorage Vaultとして設定でき、システムテーブルとStorage Vaultが指定されていないテーブルは、このデフォルトのStorage Vaultに保存されます。デフォルトのStorage Vaultは削除できません。以下は、DorisクラスターのStorage Vaultを作成する手順です:
-
HDFS Storage Vaultの作成
SQLを使用してStorage Vaultを作成するには、MySQLクライアントを使用してDorisクラスターに接続します:
CREATE STORAGE VAULT IF_NOT_EXISTS hdfs_vault
PROPERTIES (
"type"="hdfs",
"fs.defaultFS"="hdfs://127.0.0.1:8020"
); -
S3 Storage Vault の作成
S3互換オブジェクトストレージを使用してStorage Vaultを作成するには、以下の手順に従ってください:
- MySQL clientを使用してDorisクラスターに接続します。
- 以下のSQLコマンドを実行してS3 Storage Vaultを作成します:
CREATE STORAGE VAULT IF_NOT_EXISTS s3_vault
PROPERTIES (
"type"="S3",
"s3.endpoint"="s3.us-east-1.amazonaws.com",
"s3.access_key" = "ak",
"s3.secret_key" = "sk",
"s3.region" = "us-east-1",
"s3.root.path" = "ssb_sf1_p2_s3",
"s3.bucket" = "doris-build-1308700295",
"provider" = "S3"
);
他のオブジェクトストレージでStorage Vaultを作成するには、Create Storage Vaultを参照してください。
-
デフォルトのStorage Vaultを設定する
以下のSQL文を使用してデフォルトのStorage Vaultを設定します。
SET <storage_vault_name> AS DEFAULT STORAGE VAULT
注意事項
- メタデータ操作機能を持つMeta Serviceプロセスのみを、FEとBEの
meta_service_endpointとして設定する必要があります。 - データリサイクル機能プロセスを
meta_service_endpointとして設定してはいけません。