AnalyticDB for MySQL では、Spark バッチアプリケーションおよびストリーミングアプリケーションの開発手法が同一です。本トピックでは、利用可能な開発ツール、構成パラメーター、および Java、Scala、Python 各言語向けの固有パラメーターについて説明します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
AnalyticDB for MySQL クラスターが存在すること
OSS バケットがクラスターと同一リージョンに存在すること
すべてのアプリケーションファイル(JAR、Python ファイル、依存関係、圧縮パッケージなど)は OSS に格納する必要があります。
開発ツール
Spark バッチアプリケーションおよびストリーミングアプリケーションの開発には、以下のいずれかのツールを使用できます。
アプリケーション構成
AnalyticDB for MySQL の Spark アプリケーションは JSON 形式で構成します。以下の例は、OSS からデータを読み取る Java アプリケーションの構成であり、共通パラメーター(name、file、conf)および Java 固有のパラメーター(args、className)を含みます。
{
"args": ["args0", "args1"],
"name": "spark-oss-test",
"file": "oss://<testBucketName>/jars/test/spark-examples-0.0.1-SNAPSHOT.jar",
"className": "com.aliyun.spark.oss.SparkReadOss",
"conf": {
"spark.driver.resourceSpec": "medium",
"spark.executor.resourceSpec": "medium",
"spark.executor.instances": 2,
"spark.adb.connectors": "oss"
}
}各言語固有のパラメーターの詳細については、「Java アプリケーションパラメーター」、「Scala アプリケーションパラメーター」、または「Python アプリケーションパラメーター」をご参照ください。
共通パラメーター
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
name | いいえ | Spark アプリケーションの名前です。 | "name": "spark-oss-test" |
file | はい(Java、Scala、Python) | アプリケーションのメインファイルの絶対 OSS パスです。Java および Scala の場合、これはエントリポイントを含む JAR ファイルです。Python の場合、これは実行可能エントリポイントです。OSS バケットはクラスターと同一リージョンに存在する必要があります。 | "file": "oss://<testBucketName>/jars/test/spark-examples-0.0.1-SNAPSHOT.jar" |
files | いいえ | ドライバーおよびエグゼキュータの作業ディレクトリにダウンロードする追加ファイルの OSS パスです。# を使用したエイリアスに対応しています(例: oss://<testBucketName>/test/test1.txt#test1 と指定すると、ファイルは ./test1 または ./test1.txt としてアクセス可能になります)。複数のパスはカンマで区切ります。log4j.properties を含める場合、Spark はこれをログ構成ファイルとして使用します。 | "files": ["oss://<testBucketName>/path/to/file1", "oss://<testBucketName>/path/to/file2"] |
archives | いいえ | TAR.GZ 圧縮パッケージの OSS パスです。これらのパッケージは Spark プロセスの作業ディレクトリに解凍されます。# を使用したエイリアスに対応しています(例: oss://testBucketName/test/test1.tar.gz#test1 と指定すると、アーカイブ内の test2.txt は ./test1/test2.txt または ./test1.tar.gz/test2.txt としてアクセス可能になります)。複数のパスはカンマで区切ります。パッケージの解凍に失敗した場合、ジョブは失敗します。 | "archives": ["oss://<testBucketName>/path/to/archive1.tar.gz", "oss://<testBucketName>/path/to/archive2.tar.gz"] |
conf | はい | Apache Spark と同様の key: value 形式の Spark 構成です。複数のエントリはカンマで区切ります。AnalyticDB for MySQL 固有のパラメーターについては、「Spark アプリケーション構成パラメーター」をご参照ください。 | "conf": {"spark.driver.resourceSpec": "medium", "spark.executor.resourceSpec": "medium", "spark.executor.instances": 2, "spark.adb.connectors": "oss"} |
Java アプリケーションパラメーター
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
args | いいえ | JAR に渡す引数です。複数の引数はカンマで区切ります。 | "args": ["args0", "args1"] |
className | はい | Java アプリケーションのメインクラスです。 | "className": "com.aliyun.spark.oss.SparkReadOss" |
jars | いいえ | ランタイム時にドライバーおよびエグゼキュータの Java 仮想マシン(JVM)クラスパスに追加される追加 JAR ファイルの絶対 OSS パスです。OSS バケットはクラスターと同一リージョンに存在する必要があります。複数のパスはカンマで区切ります。 | "jars": ["oss://<testBucketName>/path/to/app.jar", "oss://testBucketName/path/to/lib.jar"] |
Scala アプリケーションパラメーター
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
className | はい | Scala アプリケーションのメインクラスです。 | "className": "com.aliyun.spark.oss.SparkReadOss" |
jars | いいえ | ランタイム時にドライバーおよびエグゼキュータの Java 仮想マシン(JVM)クラスパスに追加される追加 JAR ファイルの絶対 OSS パスです。OSS バケットはクラスターと同一リージョンに存在する必要があります。複数のパスはカンマで区切ります。 | "jars": ["oss://<testBucketName>/path/to/app.jar", "oss://testBucketName/path/to/lib.jar"] |
Python アプリケーションパラメーター
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
pyFiles | はい | PySpark アプリケーション用の Python ファイルの OSS パスです。サポートされる形式は ZIP、PY、EGG です。複数のファイルを指定する場合は、ZIP または EGG 形式を使用してください。Python ファイルはコード内でモジュールとしてインポートできます。複数のパスはカンマで区切ります。 | "pyFiles": ["oss://<testBucketName>/path/to/app.zip", "oss://<testBucketName>/path/to/lib.egg"] |