共有データに HDFS を使用する
このトピックでは、共有データ StarRocks クラスタのデプロイと使用方法について説明します。この機能は、S3 互換ストレージではバージョン 3.0 から、Azure Blob Storage ではバージョン 3.1 から、Azure Data Lake Storage Gen2 ではバージョン 3.4.1 からサポートされています。
注意
- StarRocks バージョン 3.1 では、共有データのデプロイと設定にいくつかの変更があります。バージョン 3.1 以上を使用している場合は、このドキュメントを使用してください。
- バージョン 3.0 を使用している場合は、3.0 ドキュメントを使用してください。
- 共有データ StarRocks クラスタは、データのバックアップとリストアをサポートしていません。
共有データ StarRocks クラスタは、ストレージとコンピュートの分離の前提でクラウド向けに特別に設計されています。データをオブジェクトストレージ(例えば、AWS S3、Google GCS、Azure Blob Storage、Azure Data Lake Storage Gen2、MinIO)に保存することができます。これにより、より安価なストレージと優れたリソース分離を実現できるだけでなく、クラスタの弾力的なスケーラビリティも達成できます。共有データ StarRocks クラスタのクエリパフォーマンスは、ローカル ディスクキャッシュがヒットした場合、共有なし StarRocks クラスタと一致します。
バージョン 3.1 以降では、StarRocks 共有データクラスタは Frontend Engines (FEs) と Compute Nodes (CNs) で構成されています。CNs は、共有データクラスタにおける従来の Backend Engines (BEs) を置き換えます。
従来の共有なし StarRocks アーキテクチャと比較して、ストレージとコンピュートの分離は幅広い利点を提供します。これらのコンポーネントを分離することにより、StarRocks は以下を提供します:
- 安価でシームレスにスケーラブルなストレージ。
- 弾力的にスケーラブルなコンピュート。データが Compute Nodes (CNs) に保存されないため、ノード間でのデータ移行やシャッフルなしにスケーリングが可能です。
- クエリパフォーマンスを向上させるためのホットデータ用ローカルディスクキャッシュ。
- オブジェクトストレージへの非同期データ取り込みにより、ロードパフォーマンスが大幅に向上します。
アーキテクチャ

共有データ StarRocks クラスタをデプロイする
共有データ StarRocks クラスタのデプロイは、共有なし StarRocks クラスタのデプロイと似ています。唯一の違いは、共有データクラスタでは BE の代わりに CN をデプロイする必要があることです。このセクションでは、共有データ StarRocks クラスタをデプロイする際に、FE と CN の設定ファイル fe.conf と cn.conf に追加する必要がある FE と CN の追加設定項目のみをリストします。StarRocks クラスタのデプロイに関する詳細な手順については、Deploy StarRocks を参照してください。
注意
このドキュメントの次のセクションで共有ストレージ用に設定するまで、クラスタを起動しないでください。
共有データ StarRocks 用の FE ノードを設定する
FEs を起動する前に、以下の設定項目を FE 設定ファイル fe.conf に追加してください。
HDFS 用の FE 設定例
以下は、各 FE ノードの fe.conf ファイルに追加する共有データの例です。
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = HDFS
# 例: hdfs://127.0.0.1:9000/user/starrocks/
cloud_native_hdfs_url = <hdfs_url>
HDFS に関連するすべての FE パラメータ
run_mode
StarRocks クラスタの実行モード。有効な値:
shared_datashared_nothing(デフォルト)
注意
- StarRocks クラスタで
shared_dataとshared_nothingモードを同時に採用することはできません。混合デプロイはサポートされていません。- クラスタがデプロイされた後に
run_modeを変更しないでください。そうしないと、クラスタが再起動に失敗します。共有なしクラスタから共有データクラスタへの変換、またはその逆はサポートされていません。
cloud_native_meta_port
クラウドネイティブメタサービスの RPC ポート。
- デフォルト:
6090
enable_load_volume_from_conf
StarRocks が FE 設定ファイルに指定されたオブジェクトストレージ関連のプロパティを使用してデフォルトのストレージボリュームを作成できるかどうか。有効な値:
true新しい共有データクラスタを作成する際にこの項目をtrueに指定すると、StarRocks は FE 設定ファイルのオブジェクトストレージ関連のプロパティを使用して組み込みのストレージボリュームbuiltin_storage_volumeを作成し、それをデフォルトのストレージボリュームと して設定します。ただし、オブジェクトストレージ関連のプロパティを指定していない場合、StarRocks は起動に失敗します。false(デフォルト) 新しい共有データクラスタを作成する際にこの項目をfalseに指定すると、StarRocks は組み込みのストレージボリュームを作成せずに直接起動します。StarRocks でオブジェクトを作成する前に、手動でストレージボリュームを作成し、それをデフォルトのストレージボリュームとして設定する必要があります。詳細については、Create the default storage volume を参照してください。
v3.1.0 からサポートされています。
cloud_native_storage_type
使用するオブジェクトストレージのタイプ。共有データモードでは、StarRocks は Azure Blob(v3.1.1 以降でサポート)および S3 プロトコルと互換性のあるオブジェクトストレージ(AWS S3、Google GCP、MinIO など)にデータを保存することをサポートしています。有効な値:
S3(デフォルト)AZBLOBHDFS
注意
- このパラメータを
S3に指定する場合、aws_s3で始まるパラメータを追加する必要があります。- このパラメータを
AZBLOBに指定する場合、azure_blobで始まるパラメータを追加する必要があり ます。- このパラメータを
HDFSに指定する場合、cloud_native_hdfs_urlパラメータを追加する必要があります。
cloud_native_hdfs_url
HDFS ストレージの URL です。例: hdfs://127.0.0.1:9000/user/xxx/starrocks/。
注意
共有データ StarRocks クラスタが作成された後に変更できるのは、資格情報に関連する設定項目のみです。元のストレージパスに関連する設定項目を変更した場合、変更前に作成したデータベースとテーブルが読み取り専用になり、それらにデータをロードできなくなります。
クラスタが作成された後にデフォルトのストレージボリュームを手動で作成したい場合、次の設定項目を追加するだけで済みます。
run_mode = shared_data
cloud_native_meta_port = <meta_port>