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

Upgrade StarRocks

StarRocks のアップグレード

このトピックでは、StarRocks クラスタをアップグレードする方法について説明します。

概要

アップグレードを開始する前に、このセクションの情報を確認し、推奨されるアクションを実行してください。

StarRocks のバージョン

StarRocks のバージョンは、メジャー.マイナー.パッチ の形式で表されます。たとえば、2.5.4 です。最初の数値はメジャーバージョンを示し、2 番目の数値はマイナーバージョンを示し、3 番目の数値はパッチバージョンを示します。StarRocks では、特定のバージョンに対して長期サポート(LTS)が提供されており、サポート期間は半年以上続きます。

StarRocks のバージョン

LTS バージョンですか

v2.0.x

いいえ

v2.1.x

いいえ

v2.2.x

いいえ

v2.3.x

いいえ

v2.4.x

いいえ

v2.5.x

はい

v3.0.x

いいえ

v3.1.x

いいえ

アップグレードパス

  • パッチバージョンのアップグレードの場合StarRocks クラスタをパッチバージョン間でアップグレードすることができます。たとえば、v2.2.6 から直接 v2.2.11 にアップグレードすることができます。
  • マイナーバージョンのアップグレードの場合StarRocks v2.0 以降、マイナーバージョン間で StarRocks クラスタをアップグレードすることができます。たとえば、v2.2.x から直接 v2.5.x にアップグレードすることができます。ただし、互換性と安全性のために、StarRocks クラスタを 連続したマイナーバージョンから順番にアップグレードすることを強くお勧めします。たとえば、StarRocks v2.2 クラスタを v2.5 にアップグレードするには、以下の順序でアップグレードする必要があります: v2.2.x -> v2.3.x -> v2.4.x -> v2.5.x。
  • メジャーバージョンのアップグレードの場合StarRocks クラスタを v3.0 にアップグレードするには、まず v2.5 にアップグレードする必要があります。

アップグレード手順

StarRocks は ローリングアップグレード をサポートしており、サービスを停止することなくクラスタをアップグレードすることができます。BE と CN は FE と互換性があるように設計されています。したがって、クラスタをアップグレードするには、まず BE と CN をアップグレードし、その後 FE をアップグレードする必要があります。逆の順序でアップグレードすると、FE と BE/CN の互換性がなくなり、サービスがクラッシュする可能性があります。FE ノードの場合、リーダー FE ノードをアップグレードする前に、まずすべてのフォロワー FE ノードをアップグレードする必要があります。

開始する前に

準備中に、マイナーバージョンまたはメジャーバージョンのアップグレードを実行する場合は、互換性の設定を行う必要があります。また、クラスタ内のすべてのノードをアップグレードする前に、FE と BE のいずれかでアップグレードの可用性テストを実行する必要があります。

互換性の設定を行う

StarRocks クラスタを後のマイナーまたはメジャーバージョンにアップグレードする場合、互換性の設定を行う必要があります。一般的な互換性の設定に加えて、StarRocks クラスタの元のバージョンによって詳細な設定が異なります。

  • 一般的な互換性の設定

StarRocks クラスタをアップグレードする前に、タブレットのクローンを無効にする必要があります。

ADMIN SET FRONTEND CONFIG ("max_scheduling_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("max_balancing_tablets" = "0");
ADMIN SET FRONTEND CONFIG ("disable_balance"="true");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="true");

アップグレード後、すべての BE ノードのステータスが Alive になったら、タブレットのクローンを再度有効にできます。

ADMIN SET FRONTEND CONFIG ("max_scheduling_tablets" = "2000");
ADMIN SET FRONTEND CONFIG ("max_balancing_tablets" = "100");
ADMIN SET FRONTEND CONFIG ("disable_balance"="false");
ADMIN SET FRONTEND CONFIG ("disable_colocate_balance"="false");
  • v2.0 から後のバージョンにアップグレードする場合

StarRocks v2.0 クラスタをアップグレードする前に、以下の BE 設定とシステム変数を設定する必要があります。

  1. BE 設定項目 vector_chunk_size を変更した場合は、アップグレード前にそれを 4096 に設定する必要があります。この設定は静的なパラメータなので、BE の設定ファイル be.conf でそれを変更し、ノードを再起動して変更を有効にする必要があります。
  2. システム変数 batch_size をグローバルで 4096 以下に設定します。
    SET GLOBAL batch_size = 4096;

BE のアップグレード

アップグレードの可用性テストに合格したら、まずクラスタ内の BE ノードをアップグレードすることができます。

  1. BE ノードの作業ディレクトリに移動し、ノードを停止します。

    # <be_dir>BE ノードの展開ディレクトリに置き換えます。
    cd <be_dir>/be
    ./bin/stop_be.sh
  2. オリジナルのデプロイメントファイル(binlib)を新しいバージョンのファイルに置き換えます。

    mv lib lib.bak 
    mv bin bin.bak
    cp -r /tmp/StarRocks-x.x.x/be/lib .
    cp -r /tmp/StarRocks-x.x.x/be/bin .
  3. BE ノードを起動します。

    sh bin/start_be.sh --daemon
  4. BE ノードが正常に起動したかどうかを確認します。

    ps aux | grep starrocks_be
  5. 上記の手順を他の BE ノードのアップグレードに繰り返します。

CN のアップグレード

  1. CN ノードの作業ディレクトリに移動し、ノードを正常に停止します。

    # <cn_dir>CN ノードの展開ディレクトリに置き換えます。
    cd <cn_dir>/be
    ./bin/stop_cn.sh --graceful
  2. オリジナルのデプロイメントファイル(binlib)を新しいバージョンのファイルに置き換えます。

    mv lib lib.bak 
    mv bin bin.bak
    cp -r /tmp/StarRocks-x.x.x/be/lib .
    cp -r /tmp/StarRocks-x.x.x/be/bin .
  3. CN ノードを起動します。

    sh bin/start_cn.sh --daemon
  4. CN ノードが正常に起動したかどうかを確認します。

    ps aux | grep starrocks_be
  5. 上記の手順を他の CN ノードのアップグレードに繰り返します。

FE のアップグレード

すべての BE ノードと CN ノードのアップグレードが完了したら、FE ノードをアップグレードします。まず、フォロワー FE ノードをアップグレードし、次にリーダー FE ノードをアップグレードする必要があります。

  1. FE ノードの作業ディレクトリに移動し、ノードを停止します。

    # <fe_dir>FE ノードの展開ディレクトリに置き換えます。
    cd <fe_dir>/fe
    ./bin/stop_fe.sh
  2. オリジナルのデプロイメントファイル(binlibspark-dpp)を新しいバージョンのファイルに置き換えます。

    mv lib lib.bak 
    mv bin bin.bak
    mv spark-dpp spark-dpp.bak
    cp -r /tmp/StarRocks-x.x.x/fe/lib .
    cp -r /tmp/StarRocks-x.x.x/fe/bin .
    cp -r /tmp/StarRocks-x.x.x/fe/spark-dpp .
  3. FE ノードを起動します。

    sh bin/start_fe.sh --daemon
  4. FE ノードが正常に起動したかどうかを確認します。

    ps aux | grep StarRocksFE
  5. 上記の手順を他のフォロワー FE ノードのアップグレードに繰り返し、最後にリーダー FE ノードをアップグレードします。

    注意

    StarRocks クラスタを v2.5 から v3.0 にアップグレードした後にクラスタをダウングレードし、再度 v3.0 にアップグレードする場合、一部のフォロワー FE でメタデータのアップグレードに失敗することを避けるために、次の手順に従う必要があります:

    1. ALTER SYSTEM CREATE IMAGE を実行して新しいイメージを作成します。
    2. 新しいイメージがすべてのフォロワー FE に同期されるまで待ちます。

    イメージファイルが同期されたかどうかは、リーダー FE のログファイル fe.log を確認して確認できます。"push image.* from subdir [] to other nodes. totally xx nodes, push successful xx nodes" のようなログの記録があれば、イメージファイルは正常に同期されたことを示します。