Helm で StarRocks をデプロイ
目的
このクイックスタートの目的は次のとおりです:
- Helm を使用して StarRocks Kubernetes Operator と StarRocks クラスターをデプロイする
- StarRocks データベースユーザー
rootのパスワードを設定する - 3 つの FE と 3 つの BE で高可用性を提供する
- メタデータを永続ストレージに保存する
- データを永続ストレージに保存する
- MySQL クライアントが Kubernetes クラスターの外部から接続できるようにする
- Kubernetes クラスターの外部から Stream Load を使用してデータをロードできるようにする
- 一部の公開データセットをロードする
- データをクエリする
データセットとクエリは、Basic Quick Start で使用されるものと同じです。ここでの主な違いは、Helm と StarRocks Operator を使用してデプロイすることです。
使用されるデータは、NYC OpenData と National Centers for Environmental Information によって提供されています。
これらのデータセットはどちらも大規模であり、このチュートリアルは StarRocks を使用する経験を得ることを目的としているため、過去 120 年分のデータをロードすることはありません。3 台の e2-standard-4 マシン(または同等のもの)で構築された GKE Kubernetes クラスターでこれを実行できます。より大規模なデプロイメントについては、他のドキュメントを用意しており、後で提供します。
このドキュメントには多くの情報が含まれており、最初にステップバイステップの内容が提示され、最後に技術的な詳細が示されています。これは次の目的を順に果たすために行われています:
- Helm でシステムをデプロイする。
- 読者が StarRocks にデータをロードし、そのデータを分析できるようにする。
- ロード中のデータ変換の基本を説明する。
前提条件
Kubernetes 環境
このガイドを作成する際に使用した Kubernetes 環境は、4 vCPUS と 16GB RAM を持つ 3 つのノードで構成されています(GCP e2-standard-4 マシン)。Kubernetes クラスターは次の gcloud コマンドでデプロイされました。
このコマンドは参考用です。AWS、Azure、または他の Kubernetes プロバイダーを使用している場合は、環境に合わせてこれを変更する必要があります。Google Cloud では、独自のプロジェクトと適切なロケーションを指定する必要があります。
gcloud container --project enterprise-demo-422514 \
clusters create ee-docs \
--location=southamerica-west1-b \
--machine-type e2-standard-4 --disk-size 80 --num-nodes 3
Helm
Helm は、Kubernetes のパッケージマネージャーで、アプリケーションのデプロイと管理を簡素化します。このラボでは、Helm を使用して CelerData Enterprise Edition Kubernetes operator とサンプルの StarRocks クラスターをデプロイします。
SQL クライアント
Kubernetes 環境で提供される SQL クライアントを使用するか、システム上のものを使用できます。このガイドでは mysql CLI を使用します。多くの MySQL 互換クライアントが動作します。
curl
curl は StarRocks にデータロードジョブを発行し、データセットをダウンロードするために使用されます。OS プロンプトで curl または curl.exe を実行して、インストールされているか確認してください。curl がインストールされていない場合は、こちらから curl を入手してください。
用語
FE
フロントエンドノードは、メタデータ管理、クライアント接続管理、クエリプランニング、クエリスケジューリングを担当します。各 FE はメモリ内にメタデータの完全なコピーを保持し、FE 間でのサービスの無差別性を保証します。
BE
バックエンドノードは、データストレージとクエリプランの実行の両方を担当します。
StarRocks Helm チャートリポジトリを追加する
Helm Chart には StarRocks Operator とカスタムリソース StarRocksCluster の定義が含まれています。
-
Helm Chart リポジトリを追加します。
helm repo add starrocks https://starrocks.github.io/starrocks-kubernetes-operator -
Helm Chart リポジトリを最新バージョンに更新します。
helm repo update -
追加した Helm Chart リポジトリを表示します。
helm search repo starrocksNAME CHART VERSION APP VERSION DESCRIPTION
starrocks/kube-starrocks 1.9.7 3.2-latest kube-starrocks includes two subcharts, operator...
starrocks/operator 1.9.7 1.9.7 A Helm chart for StarRocks operator
starrocks/starrocks 1.9.7 3.2-latest A Helm chart for StarRocks cluster
starrocks/warehouse 1.9.7 3.2-latest Warehouse is currently a feature of the StarRoc...
データをダウンロードする
これらの 2 つのデータセットをマシンにダウンロードします。
ニューヨーク市のクラッシュデータ
curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/quickstart/datasets/NYPD_Crash_Data.csv
気象データ
curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/quickstart/datasets/72505394728.csv
Helm の values ファイルを作成する
このクイックスタートの目標は次のとおりです:
- StarRocks データベースユーザー
rootのパスワードを設定する - 3 つの FE と 3 つの BE で高可用性を提供する
- メタデータを永続ストレージに保存する
- データを永続ストレージに保存する
- MySQL クライアントが Kubernetes クラスターの外部から接続できるようにする
- Kubernetes クラスターの外部から Stream Load を使用してデータをロードできるようにする
Helm チャートはこれらの目標を満たすオプションを提供しますが、デフォルトでは設定されていません。このセクションの残りの部分では、これらの目標をすべて満たすために必要な設定を説明します。完全な values スペックが提供されますが、最初に 6 つのセクションの詳細を読み、次に完全なスペックをコピーしてください。
1. データベースユーザーのパスワード
この YAML の一部は、StarRocks operator に対して、Kubernetes secret starrocks-root-pass の password キーの値にデータベースユーザー root のパスワードを設定するよう指示します。
starrocks:
initPassword:
enabled: true
# Set a password secret, for example:
# kubectl create secret generic starrocks-root-pass --from-literal=password='g()()dpa$$word'
passwordSecret: starrocks-root-pass
-
タスク: Kubernetes secret を作成する
kubectl create secret generic starrocks-root-pass --from-literal=password='g()()dpa$$word'
2. 3 つの FE と 3 つの BE での高可用性
starrocks.starrockFESpec.replicas を 3 に設定し、starrocks.starrockBeSpec.replicas を 3 に設定することで、高可用性のための十分な FE と BE を持つことができます。CPU とメモリのリクエストを低く設定することで、小規模な Kubernetes 環境でポッドを作成できるようにします。
starrocks:
starrocksFESpec:
replicas: 3
resources:
requests:
cpu: 1
memory: 1Gi
starrocksBeSpec:
replicas: 3
resources:
requests:
cpu: 1
memory: 2Gi