このトピックでは、バッチまたはストリーミングタスクを開発する際の設定項目と操作手順について説明します。
前提条件
ワークスペースが作成されました。詳細については、「ワークスペースの管理」をご参照ください。
操作手順
Data Development ページに移動します。
E-MapReduce コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
Spark ページで、対象のワークスペース名をクリックします。
EMR Serverless Spark ページで、左側のナビゲーションウィンドウから Development をクリックします。
タスクを作成します。
開発 タブで、
アイコンをクリックします。ダイアログボックスで、Name を入力し、バッチまたはストリーミングのタスクタイプを選択して、OK をクリックします。
右上隅で、リソースキュー を選択します。
新規タスクのエディターで、タスクタイプに応じてパラメーターを編集します。
JAR
パラメーター
説明
Main JAR Resource
タスク実行に必要な主要な JAR パッケージです。
Workspace:事前に Artifacts ページにアップロードしたファイル。
OSS:Alibaba Cloud Object Storage Service (OSS) に保存されたファイル。
Engine Version
Spark のバージョンです。詳細については、「エンジンバージョン」をご参照ください。
Main class
Spark タスクを送信する際に指定するメインクラスです。
Execution Parameters
タスクランタイム中に必要な設定項目、またはメインクラスに渡すカスタムパラメーターです。複数のパラメーターは半角スペースで区切ります。
Timeout
このタスクの完了に許容される最大時間です。タスクの実行時間がこのしきい値を超えると、システムが自動的にタスクを停止します。デフォルト値は空であり、タイムアウト制限が設定されていないことを意味します。
Network Connection
VPC 内のデータソースや外部サービスにアクセスするための既存のネットワーク接続です。詳細については、「EMR Serverless Spark と他の VPC 間のネットワーク接続性」をご参照ください。
Mount Integrated File Directory
デフォルトでは無効です。この機能を使用するには、アーティファクト ページの Integrated File Directory タブでファイルディレクトリを追加してください。詳細については、「統合ファイルディレクトリの管理」をご参照ください。
この機能を有効にすると、管理対象のファイルディレクトリがアプリケーションにマウントされ、ディレクトリ内のファイルを直接読み書きできるようになります。
マウント操作はドライバーの計算リソースを消費します。消費量は以下の 2 つの値のうち大きい方となります。
固定リソース:0.3 vCPU + 1 GB メモリ。
動的リソース:
spark.driverリソースの 10 %(つまり、spark.driverのコア数およびメモリの 10 %)。
たとえば、
spark.driverが 4 コア、8 GB メモリで構成されている場合、動的リソースは 0.4 vCPU + 0.8 GB メモリです。この場合、実際に消費されるリソースはmax(0.3 vCPU + 1 GB、0.4 vCPU + 0.8 GB)となり、0.4 vCPU + 1 GB メモリとなります。説明-
マウント範囲:デフォルトでは、ファイルディレクトリはドライバーにのみマウントされます。エグゼキュータにもマウントするには、エグゼキュータへのマウント を有効にしてください。
-
複数ディレクトリ:複数の統合ファイルディレクトリをマウントできます。ただし、CPFS ディレクトリは他のタイプと併用できません。たとえば、複数の OSS および NAS ディレクトリを同時にマウントできますが、CPFS を OSS や NAS ディレクトリと一緒にマウントすることはできません。
-
ネットワーク要件:NAS または CPFS ファイルディレクトリをマウントする場合は、ネットワーク接続を設定する必要があります。ネットワーク接続の VPC は、NAS または CPFS マウントポイントの VPC と同じでなければなりません。
エグゼキュータへのマウント
この機能を有効にすると、管理対象のファイルディレクトリがアプリケーションのエグゼキュータにマウントされ、ディレクトリ内のファイルを直接読み書きできるようになります。
このマウント操作はエグゼキュータのリソースを消費します。消費されるリソース量は、マウントされたファイルの使用状況によって異なります。
File Resources
タスクを送信する際、
--filesパラメーターで指定されたファイルがエグゼキュータの作業ディレクトリにコピーされます。これにより、Spark タスクがランタイム中にこれらのファイルにアクセスできるようになります。Workspace または OSS からファイルを選択できます。
Archive Resources
タスクを送信する際、
--archivesパラメーターで指定されたファイルが解凍され、エグゼキュータ上のアーカイブ済みオブジェクトとして分散されます。Workspace または OSS からアーカイブを選択できます。
JAR Resources
タスクを送信する際、
--jarsパラメーターを使用して必要な JAR 依存関係ファイルを指定します。Workspace または OSS から JAR を選択できます。
spark.driver.cores
Spark アプリケーションのドライバーで使用される CPU コア数です。
spark.driver.memory
Spark アプリケーションのドライバーで利用可能なメモリ量です。
spark.executor.cores
Spark アプリケーションの各エグゼキュータで使用される仮想 CPU コア数です。
spark.executor.memory
Spark アプリケーションの各エグゼキュータで利用可能なメモリ量です。
spark.executor.instances
Spark が割り当てるエグゼキュータの数です。
Dynamic Resource Allocation
デフォルトでは無効です。有効にした場合は、以下のパラメーターを設定してください。
-
Minimum Number of Executors:デフォルト値は 2 です。
-
Maximum Number of Executors:spark.executor.instances が設定されていない場合、デフォルト値は 10 です。
More Memory Configurations
-
spark.driver.memoryOverhead:ドライバーで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.driver.memory)です。 -
spark.executor.memoryOverhead:各エグゼキュータで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.executor.memory)です。 -
spark.memory.offHeap.size:Spark で利用可能なオフヒープメモリ量です。デフォルト値は 1 GB です。
このパラメーターは、
spark.memory.offHeap.enabledがtrueに設定されている場合にのみ有効です。Fusion エンジンを使用する場合、この機能はデフォルトで有効になり、1 GB のオフヒープメモリが割り当てられます。
Spark Configuration
Spark 構成情報を入力します。キーと値のペアは半角スペースで区切ります。例:
key value。Tags
タグのキーと値のペアを入力します。タグを使用すると、タスクをより便利かつ正確に管理できます。
PySpark
パラメーター
説明
Main Python Resources
タスク実行に必要な主要な Python ファイルです。
Workspace:Artifacts ページにアップロードしたファイル。
OSS:Object Storage Service (OSS) に保存されたファイル。
Engine Version
Spark のバージョンです。詳細については、「エンジンバージョン」をご参照ください。
Execution Parameters
タスクランタイム中に必要な設定項目、またはメインクラスに渡すカスタムパラメーターです。
Timeout
このタスクの完了に許容される最大時間です。タスクの実行時間がこのしきい値を超えると、システムが自動的にタスクを停止します。デフォルト値は空であり、タイムアウト制限が設定されていないことを意味します。
Environment
選択した環境に基づき、タスク実行に必要なリソースが事前構成されます。
Network Connection
VPC 内のデータソースや外部サービスにアクセスするための既存のネットワーク接続です。詳細については、「EMR Serverless Spark と他の VPC 間のネットワーク接続性」をご参照ください。
Mount Integrated File Directory
デフォルトでは無効です。この機能を使用するには、アーティファクト ページの Integrated File Directory タブでファイルディレクトリを追加してください。詳細については、「統合ファイルディレクトリの管理」をご参照ください。
有効にすると、この機能により管理対象のファイルディレクトリがタスクにマウントされ、ディレクトリ内のファイルを直接読み書きできるようになります。
マウント操作はドライバーの計算リソースを消費します。消費量は以下の 2 つの値のうち大きい方となります。
固定リソース:0.3 vCPU + 1 GB メモリ。
動的リソース:
spark.driverリソースの 10 %(つまり、spark.driverのコア数およびメモリの 10 %)。
たとえば、
spark.driverが 4 コア、8 GB メモリで構成されている場合、動的リソースは 0.4 vCPU + 0.8 GB メモリです。この場合、実際に消費されるリソースはmax(0.3 vCPU + 1 GB、0.4 vCPU + 0.8 GB)となり、0.4 vCPU + 1 GB メモリとなります。説明-
マウント範囲:デフォルトでは、ファイルディレクトリはドライバーにのみマウントされます。エグゼキュータにもマウントするには、エグゼキュータへのマウント を有効にしてください。
-
複数ディレクトリ:複数の統合ファイルディレクトリをマウントできます。ただし、CPFS ディレクトリは他のタイプと併用できません。たとえば、複数の OSS および NAS ディレクトリを同時にマウントできますが、CPFS を OSS や NAS ディレクトリと一緒にマウントすることはできません。
-
ネットワーク要件:NAS または CPFS ファイルディレクトリをマウントする場合は、ネットワーク接続を設定する必要があります。ネットワーク接続の VPC は、NAS または CPFS マウントポイントの VPC と同じでなければなりません。
エグゼキュータへのマウント
有効にすると、この機能により管理対象のファイルディレクトリがタスクのエグゼキュータにマウントされ、ディレクトリ内のファイルを直接読み書きできるようになります。
このマウント操作はエグゼキュータのリソースを消費します。消費されるリソースの割合は、マウントされたファイルの使用量によって異なります。
File Resources
クラスター内のすべてのエグゼキュータノードに分散されるファイルの一覧です。
リソースタイプとして、Workspace または OSS を選択できます。
Pyfiles Resources
タスクを送信する際、
--py-filesパラメーターで指定されたファイルが Python 依存関係ファイルとして分散されます。リソースタイプとして、Workspace または OSS を選択できます。
Archive Resources
タスクを送信する際、
--archivesパラメーターで指定されたファイルが解凍され、エグゼキュータ上のアーカイブ済みオブジェクトとして分散されます。リソースタイプとして、Workspace または OSS を選択できます。
JAR Resources
タスクを送信する際、
--jarsパラメーターを使用して必要な JAR 依存関係ファイルを指定します。リソースタイプとして、Workspace または OSS を選択できます。
spark.driver.cores
Spark アプリケーションのドライバーで使用される CPU コア数です。
spark.driver.memory
Spark アプリケーションのドライバーで利用可能なメモリ量です。
spark.executor.cores
Spark アプリケーションの各エグゼキュータで使用される仮想 CPU コア数です。
spark.executor.memory
Spark アプリケーションの各エグゼキュータで利用可能なメモリ量です。
spark.executor.instances
Spark が割り当てるエグゼキュータの数です。
Dynamic Resource Allocation
デフォルトでは無効です。有効にした場合は、以下のパラメーターを設定してください。
-
Minimum Number of Executors:デフォルト値は 2 です。
-
Maximum Number of Executors:spark.executor.instances が設定されていない場合、デフォルト値は 10 です。
More Memory Configurations
-
spark.driver.memoryOverhead:ドライバーで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.driver.memory)です。 -
spark.executor.memoryOverhead:各エグゼキュータで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.executor.memory)です。 -
spark.memory.offHeap.size:Spark で利用可能なオフヒープメモリ量です。デフォルト値は 1 GB です。
このパラメーターは、
spark.memory.offHeap.enabledがtrueに設定されている場合にのみ有効です。Fusion エンジンを使用する場合、この機能はデフォルトで有効になり、1 GB のオフヒープメモリが割り当てられます。
Spark Configuration
Spark 構成情報を入力します。キーと値のペアは半角スペースで区切ります。例:
key value。Tags
タグのキーと値のペアを入力します。タグを使用すると、タスクをより便利かつ正確に管理できます。
SQL
パラメーター
説明
SQL File
タスクを送信する際に必要なファイルです。
Workspace:アーティファクト ページのファイル。
OSS:Alibaba Cloud OSS のファイル。
ステートメントの実行:ファイルをアップロードせずに SQL ステートメントを直接実行します。
Engine Version
Spark のバージョンです。詳細については、「エンジンバージョン」をご参照ください。
Timeout
このタスクの完了に許容される最大時間です。タスクの実行時間がこのしきい値を超えると、システムが自動的にタスクを停止します。デフォルト値は空であり、タイムアウト制限が設定されていないことを意味します。
Network Connection
VPC 内のデータソースや外部サービスにアクセスするための既存のネットワーク接続です。詳細については、「EMR Serverless Spark と他の VPC 間のネットワーク接続性」をご参照ください。
Mount Integrated File Directory
デフォルトでは無効です。この機能を使用するには、アーティファクト ページの Integrated File Directory タブでファイルディレクトリを追加してください。詳細については、「統合ファイルディレクトリの管理」をご参照ください。
有効にすると、システムが管理対象のファイルディレクトリをタスクにマウントし、ディレクトリの読み書きが可能になります。
マウント操作はドライバーの計算リソースを消費します。消費量は以下の 2 つの値のうち大きい方となります。
固定リソース:0.3 vCPU + 1 GB メモリ。
動的リソース:
spark.driverリソースの 10 %(つまり、spark.driverのコア数およびメモリの 10 %)。
たとえば、
spark.driverが 4 コア、8 GB メモリで構成されている場合、動的リソースは 0.4 vCPU + 0.8 GB メモリです。この場合、実際に消費されるリソースはmax(0.3 vCPU + 1 GB、0.4 vCPU + 0.8 GB)となり、0.4 vCPU + 1 GB メモリとなります。説明-
マウント範囲:デフォルトでは、ファイルディレクトリはドライバーにのみマウントされます。エグゼキュータにもマウントするには、エグゼキュータへのマウント を有効にしてください。
-
複数ディレクトリ:複数の統合ファイルディレクトリをマウントできます。ただし、CPFS ディレクトリは他のタイプと併用できません。たとえば、複数の OSS および NAS ディレクトリを同時にマウントできますが、CPFS を OSS や NAS ディレクトリと一緒にマウントすることはできません。
-
ネットワーク要件:NAS または CPFS ファイルディレクトリをマウントする場合は、ネットワーク接続を設定する必要があります。ネットワーク接続の VPC は、NAS または CPFS マウントポイントの VPC と同じでなければなりません。
エグゼキュータへのマウント
有効にすると、システムが管理対象のファイルディレクトリをタスクのエグゼキュータにマウントし、ディレクトリの読み書きが可能になります。
マウント操作はエグゼキュータのリソースを消費します。消費されるリソースの割合は、ファイルの使用量に応じて変動します。
spark.driver.cores
Spark アプリケーションのドライバーで使用される CPU コア数です。
spark.driver.memory
Spark アプリケーションのドライバーで利用可能なメモリ量です。
spark.executor.cores
Spark アプリケーションの各エグゼキュータで使用される仮想 CPU コア数です。
spark.executor.memory
Spark アプリケーションの各エグゼキュータで利用可能なメモリ量です。
spark.executor.instances
Spark が割り当てるエグゼキュータの数です。
Dynamic Resource Allocation
デフォルトでは無効です。有効にした場合は、以下のパラメーターを設定してください。
-
Minimum Number of Executors:デフォルト値は 2 です。
-
Maximum Number of Executors:spark.executor.instances が設定されていない場合、デフォルト値は 10 です。
More Memory Configurations
-
spark.driver.memoryOverhead:ドライバーで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.driver.memory)です。 -
spark.executor.memoryOverhead:各エグゼキュータで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.executor.memory)です。 -
spark.memory.offHeap.size:Spark で利用可能なオフヒープメモリ量です。デフォルト値は 1 GB です。
このパラメーターは、
spark.memory.offHeap.enabledがtrueに設定されている場合にのみ有効です。Fusion エンジンを使用する場合、この機能はデフォルトで有効になり、1 GB のオフヒープメモリが割り当てられます。
Spark Configuration
Spark 構成情報を入力します。キーと値のペアは半角スペースで区切ります。例:
key value。Tags
タグのキーと値のペアを入力します。タグを使用すると、タスクをより便利かつ正確に管理できます。
Spark Submit
パラメーター
説明
Engine Version
Spark のバージョンです。詳細については、「エンジンバージョン」をご参照ください。
Script
Spark Submit スクリプトを入力します。
以下のコードはその例です。
--class org.apache.spark.examples.SparkPi \ --conf spark.executor.memory=2g \ oss://<YourBucket>/spark-examples_2.12-3.5.2.jarTimeout
このタスクの完了に許容される最大時間です。タスクの実行時間がこのしきい値を超えると、システムが自動的にタスクを停止します。デフォルト値は空であり、タイムアウト制限が設定されていないことを意味します。
Network Connection
VPC 内のデータソースや外部サービスにアクセスするための既存のネットワーク接続です。詳細については、「EMR Serverless Spark と他の VPC 間のネットワーク接続性」をご参照ください。
Mount Integrated File Directory
デフォルトでは無効です。この機能を使用するには、アーティファクト ページの Integrated File Directory タブでファイルディレクトリを追加してください。詳細については、「統合ファイルディレクトリの管理」をご参照ください。
有効にすると、この機能により管理対象のファイルディレクトリがアプリケーションにマウントされ、ディレクトリ内のファイルを直接読み書きできるようになります。
マウント操作はドライバーの計算リソースを消費します。消費量は以下の 2 つの値のうち大きい方となります。
固定リソース:0.3 vCPU + 1 GB メモリ。
動的リソース:
spark.driverリソースの 10 %(つまり、spark.driverのコア数およびメモリの 10 %)。
たとえば、
spark.driverが 4 コア、8 GB メモリで構成されている場合、動的リソースは 0.4 vCPU + 0.8 GB メモリです。この場合、実際に消費されるリソースはmax(0.3 vCPU + 1 GB、0.4 vCPU + 0.8 GB)となり、0.4 vCPU + 1 GB メモリとなります。説明-
マウント範囲:デフォルトでは、ファイルディレクトリはドライバーにのみマウントされます。エグゼキュータにもマウントするには、エグゼキュータへのマウント を有効にしてください。
-
複数ディレクトリ:複数の統合ファイルディレクトリをマウントできます。ただし、CPFS ディレクトリは他のタイプと併用できません。たとえば、複数の OSS および NAS ディレクトリを同時にマウントできますが、CPFS を OSS や NAS ディレクトリと一緒にマウントすることはできません。
-
ネットワーク要件:NAS または CPFS ファイルディレクトリをマウントする場合は、ネットワーク接続を設定する必要があります。ネットワーク接続の VPC は、NAS または CPFS マウントポイントの VPC と同じでなければなりません。
エグゼキュータへのマウント
有効にすると、この機能により管理対象のファイルディレクトリがアプリケーションのエグゼキュータにマウントされ、ディレクトリ内のファイルを直接読み書きできるようになります。
消費されるエグゼキュータリソース量は、マウントされたファイルの使用方法によって異なります。
spark.driver.cores
Spark アプリケーションのドライバーで使用される CPU コア数です。
spark.driver.memory
Spark アプリケーションのドライバーで利用可能なメモリ量です。
spark.executor.cores
Spark アプリケーションの各エグゼキュータで使用される仮想 CPU コア数です。
spark.executor.memory
Spark アプリケーションの各エグゼキュータで利用可能なメモリ量です。
spark.executor.instances
Spark が割り当てるエグゼキュータの数です。
Dynamic Resource Allocation
デフォルトでは無効です。有効にした場合は、以下のパラメーターを設定してください。
-
Minimum Number of Executors:デフォルト値は 2 です。
-
Maximum Number of Executors:spark.executor.instances が設定されていない場合、デフォルト値は 10 です。
More Memory Configurations
-
spark.driver.memoryOverhead:ドライバーで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.driver.memory)です。 -
spark.executor.memoryOverhead:各エグゼキュータで利用可能な非ヒープメモリです。このパラメーターが設定されていない場合、Spark はデフォルトに基づき自動的に値を割り当てます。
max(384 MB、10% * spark.executor.memory)です。 -
spark.memory.offHeap.size:Spark で利用可能なオフヒープメモリ量です。デフォルト値は 1 GB です。
このパラメーターは、
spark.memory.offHeap.enabledがtrueに設定されている場合にのみ有効です。Fusion エンジンを使用する場合、この機能はデフォルトで有効になり、1 GB のオフヒープメモリが割り当てられます。
Spark Configuration
Spark 構成情報を入力します。キーと値のペアは半角スペースで区切ります。例:
key value。Tags
タグのキーと値のペアを入力します。タグを使用すると、タスクをより便利かつ正確に管理できます。
(任意)タスク開発ページの右側で、Version Information タブをクリックして、バージョンを表示または比較します。
タスクを実行して公開します。
Run をクリックします。
タスク詳細を表示するには、タスク実行後に下部の Execution Records エリアに移動し、操作 列の Details をクリックします。
右上隅で、Publish をクリックします。
Publish ダイアログボックスで、Remarks を入力し、OK をクリックします。
関連ドキュメント
よくある質問
Q1:失敗したタスクに対して自動リトライポリシーを設定するにはどうすればよいですか?
ストリーミングタスクのフォールトトレランスを向上させるために、次の 2 つの Spark 構成項目を使用して自動リトライポリシーを設定できます。
spark.emr.serverless.streaming.fail.retry.interval 60 # リトライ間隔:60 秒
spark.emr.serverless.streaming.fail.retry.time 3 # 最大リトライ回数:3