メインコンテンツまでスキップ

分離ストレージコンピュートクラスタを手動でデプロイする

環境チェック、クラスタプランニング、オペレーティングシステムチェックなどの前提条件チェックとプランニングが完了した後、クラスタのデプロイを開始できます。デプロイプロセスは8つのステップで構成されます:

  1. FoundationDBクラスタの準備:既存のFoundationDBクラスタを使用するか、新しいものを作成できます;

  2. S3またはHDFSサービスのデプロイ:既存の共有ストレージを使用するか、新しい共有ストレージを作成できます;

  3. Meta Serviceのデプロイ:DorisクラスタのMeta Serviceをデプロイします;

  4. データ回収プロセスのデプロイ:オプションで、Dorisクラスタ用に独立したデータ回収プロセスをデプロイします;

  5. FE Masterノードの起動:最初のFEノードをMaster FEノードとして起動します;

  6. FE Masterクラスタの作成:FE Follower/ObserverノードをFEクラスタに追加してクラスタを形成します;

  7. BEノードの追加:BEノードをクラスタに追加・登録します;

  8. Storage Vaultの追加:共有ストレージを使用して1つ以上のStorage Vaultを作成します。

ステップ1:FoundationDBの準備

このセクションでは、fdb_vars.shfdb_ctl.shスクリプトを使用してFoundationDB(FDB)サービスを設定、デプロイ、開始するためのステップバイステップの手順を提供します。doris toolsをダウンロードし、fdbディレクトリからfdb_vars.shfdb_ctl.shを取得できます。

ヒント

Dorisは現在、デフォルトでFDBバージョン7.1.xに依存しています。すでにFDBを別途インストールしている場合は、バージョン7.1.xであることを確認してください。そうでなければ、Meta Serviceの起動に失敗します。

  1. マシン要件

    通常、二重データレプリカを持つFoundationDBクラスタを形成し、単一マシンの障害に対応するには、SSDを搭載した少なくとも3台のマシンが必要です。テスト/開発環境では、単一のマシンでFoundationDBをセットアップできます。

  2. fdb_vars.shスクリプトの設定

    fdb_vars.shスクリプトを設定する際は、以下の設定を必ず指定する必要があります:

    Parameter詳細タイプExample
    DATA_DIRSFoundationDBデータディレクトリを指定絶対パスのカンマ区切りリスト/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_HOMEFoundationDBホームディレクトリを定義絶対パス/fdbhome- デフォルトパスは/fdbhome - このパスが絶対パスであることを確認
    FDB_CLUSTER_IDクラスタIDを定義文字列SAQESzbh- IDは各クラスタで一意である必要がある - mktemp -u XXXXXXXXを使用して生成
    FDB_CLUSTER_DESCFDBクラスタの説明を定義文字列dorisfdb- デプロイに意味のある名前に変更することを推奨

    以下のオプションのカスタム設定も指定できます:

    Parameter詳細タイプExample
    MEMORY_LIMIT_GBFDBメモリ制限を定義整数32- 利用可能なシステムメモリに基づいてメモリ制限を設定
  3. FDBクラスタのデプロイ

    fdb_vars.shを使用して環境を設定した後、fdb_ctl.shスクリプトを使用して各ノードでFDBクラスタをデプロイできます。

    ./fdb_ctl.sh deploy

このコマンドはFDBクラスターのデプロイメントプロセスを開始します。

  1. FDBサービスの開始

    FDBクラスターがデプロイされた後、fdb_ctl.shスクリプトを使用してFDBサービスを開始できます。

    ./fdb_ctl.sh start

このコマンドはFDBサービスを開始し、クラスターをオンラインにしてFDBクラスター接続文字列を取得します。この接続文字列はMetaServiceの設定に使用できます。

Note

fdb_ctl.shスクリプトの'clean'コマンドは、すべてのFDBメタデータをクリアするため、データ損失を引き起こす可能性があります。本番環境でこのコマンドを使用することは厳格に禁止されています!

ステップ2:S3/HDFSサービスのインストール(オプション)

ストレージ・コンピュート分離モードのApache Dorisは、S3またはHDFSサービス上にデータを保存します。これらのサービスが既にセットアップされている場合は、直接使用できます。 そうでなければ、このドキュメントではMinIOの簡単なデプロイメントガイドを提供します:

  1. MinIO download pageにアクセスして、適切なバージョンとオペレーティングシステムを選択し、対応するServerとClientのバイナリまたはインストールパッケージをダウンロードしてください。

  2. 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 &
  3. 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
  4. バケットを作成する

    ./mc mb myminio/doris
  5. 正しく動作していることを確認する

    # Upload a file  
    ./mc mv test_file myminio/doris
    # List the file
    ./mc ls myminio/doris

ステップ 3: Meta Service デプロイメント

  1. 設定

    ./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
  1. 開始と停止

    開始する前に、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: データリサイクル機能の独立デプロイ(オプション)

Information

Meta Service自体にはメタデータ管理とリサイクル機能があり、これら2つの機能は独立してデプロイできます。独立してデプロイしたい場合は、このセクションを参照してください。

  1. 新しい作業ディレクトリ(例:recycler)を作成し、msディレクトリの内容を新しいディレクトリにコピーします:

    cp -r ms recycler
  2. 新しいディレクトリの設定ファイルでBRPCリッスンポートbrpc_listen_portfdb_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ノードの起動

  1. 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はカンマで区切って設定できます。
  2. 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に対して以下の手順を実行してください:

  1. 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"}]
  2. BEプロセスの開始

    以下のコマンドを使用してBackendを開始します:

    bin/start_be.sh --daemon
  3. クラスターに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を参照してください。

  1. 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を作成する手順です:

  1. 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"
    );
  2. 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を参照してください。

  1. デフォルトのStorage Vaultを設定する

    以下のSQL文を使用してデフォルトのStorage Vaultを設定します。

    SET <storage_vault_name> AS DEFAULT STORAGE VAULT

注意事項

  • メタデータ操作機能を持つMeta Serviceプロセスのみを、FEとBEのmeta_service_endpointとして設定する必要があります。
  • データリサイクル機能プロセスをmeta_service_endpointとして設定してはいけません。