メインコンテンツまでスキップ
バージョン: 3.15

パブリッククラウド環境への ScalarDB Analytics のデプロイ

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このガイドでは、パブリッククラウド環境に ScalarDB Analytics をデプロイする方法について説明します。ScalarDB Analytics は現在、実行エンジンとして Apache Spark を使用しており、Amazon EMR や Databricks などのパブリッククラウドプロバイダーが提供するマネージド Spark サービスをサポートしています。

サポートされているマネージド Spark サービスとそのアプリケーションタイプ

ScalarDB Analytics は以下のマネージド Spark サービスとアプリケーションタイプをサポートしています。

パブリッククラウドサービスSpark DriverSpark ConnectJDBC
Amazon EMR (EMR on EC2)
Databricks

設定とデプロイ

パブリッククラウド環境を選択し、指示に従って ScalarDB Analytics を設定およびデプロイしてください。

Amazon EMR の使用

ScalarDB Analytics を通じて分析クエリを実行するために Amazon EMR(EMR on EC2)を使用できます。EMR クラスターを起動する基本については、AWS EMR on EC2 ドキュメントを参照してください。

ScalarDB Analytics の設定

ScalarDB Analytics を有効にするには、EMR クラスターを起動するときにソフトウェア設定に次の構成を追加する必要があります。括弧内の内容を必ず置き換えてください:

[
{
"Classification": "spark-defaults",
"Properties": {
"spark.jars.packages": "com.scalar-labs:scalardb-analytics-spark-all-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_VERSION>",
"spark.sql.catalog.<CATALOG_NAME>": "com.scalar.db.analytics.spark.ScalarDbAnalyticsCatalog",
"spark.sql.extensions": "com.scalar.db.analytics.spark.extension.ScalarDbAnalyticsExtensions",
"spark.sql.catalog.<CATALOG_NAME>.license.cert_pem": "<YOUR_LICENSE_CERT_PEM>",
"spark.sql.catalog.<CATALOG_NAME>.license.key": "<YOUR_LICENSE_KEY>",

// 以下にデータソースの設定を続けてください
}
}
]

括弧内の内容は以下のように変更してください:

  • <SPARK_VERSION>: Spark のバージョン
  • <SCALA_VERSION>: Spark のビルドに使用される Scala のバージョン
  • <SCALARDB_ANALYTICS_VERSION>: ScalarDB Analytics のバージョン
  • <CATALOG_NAME>: カタログの名前
  • <YOUR_LICENSE_CERT_PEM>: PEM エンコードされたライセンス証明書
  • <YOUR_LICENSE_KEY>: ライセンスキー

詳細については、ScalarDB Analytics のセットアップのための Spark 設定を参照してください。

Spark Driver を介した分析クエリの実行

EMR Spark クラスターが起動した後、ssh を使用して EMR クラスターのプライマリノードに接続し、Spark アプリケーションを実行できます。Spark Driver アプリケーションの作成方法の詳細については、Spark Driver アプリケーションを参照してください。

Spark Connect を介した分析クエリの実行

Spark Connect を使用して、起動した EMR クラスターを使用して Spark アプリケーションをリモートで実行できます。

まず、Spark Driver アプリケーションと同じようにソフトウェア設定を構成する必要があります。また、Spark Connect を有効にするために次の設定も行う必要があります。

Spark Connect サーバーのインバウンドトラフィックを許可する
  1. Spark Connect サーバーのインバウンドトラフィックを許可するセキュリティグループを作成します(デフォルトはポート15001)。
  2. 「Amazon EMR サービスロール」のロールがセキュリティグループを EMR クラスターのプライマリノードにアタッチできるようにします。
  3. EMR クラスターを起動するときに、「追加のセキュリティグループ」としてセキュリティグループを EMR クラスターのプライマリノードに追加します。
ブートストラップアクションを介した Spark Connect サーバーの起動
  1. 次のように Spark Connect サーバーを起動するためのスクリプトファイルを作成します:
#!/usr/bin/env bash

set -eu -o pipefail

cd /var/lib/spark

sudo -u spark /usr/lib/spark/sbin/start-connect-server.sh --packages org.apache.spark:spark-connect_<SCALA_VERSION>:<SPARK_FULL_VERSION>,com.scalar-labs:scalardb-analytics-spark-all-<SPARK_VERSION>_<SCALA_VERSION>:<SCALARDB_ANALYTICS_VERSION>

括弧内の内容は以下のように変更してください:

  • <SCALA_VERSION>: Spark インストールに合わせた Scala のメジャーおよびマイナーバージョン(2.12 や 2.13 など)
  • <SPARK_FULL_VERSION>: 使用している Spark の完全なバージョン(3.5.3 など)
  • <SPARK_VERSION>: 使用している Spark のメジャーおよびマイナーバージョン(3.5 など)
  • <SCALARDB_ANALYTICS_VERSION>: ScalarDB Analytics のバージョン
  1. スクリプトファイルを S3 にアップロードします。
  2. 「Amazon の EMR 用 EC2 インスタンスプロファイル」のロールがS3にアップロードされたスクリプトファイルにアクセスできるようにします。
  3. EMR クラスターを起動するときに、アップロードされたスクリプトファイルを「ブートストラップアクション」に追加します。
分析クエリの実行

Spark Connect サーバーのリモート URL(sc://<PRIMARY_NODE_PUBLIC_HOSTNAME>:15001)を使用して、どこからでも Spark Connect を介して Spark アプリケーションを実行できます。

Spark Connect を使用した Spark アプリケーションの作成方法の詳細については、Spark Connect アプリケーションを参照してください。