# Spark UniversalでEMR Serverless接続パラメーターを定義

## このタスクについて

Talend StudioはEMR Serverlessに接続して、そのクラスターからジョブを実行します。

## 手順

1. デザインワークスペースの下にある[Run] (実行)ビューをクリックした後に、[Spark configuration] (Spark設定)ビューをクリックします。
2. [Property type] (プロパティタイプ)ドロップダウンリストから[Built-in] (組み込み)を選択します。

   [Hadoop接続を一元管理](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2026-03/Hadoop接続を一元管理/talend/ja-JP/studio-user-guide/8.0/centralizing-hadoop-connection)で説明されているとおり、既に[Repository] (リポジトリー)で接続パラメーターが設定されている場合は簡単に再利用できます。再利用するためには、[Property type] (プロパティタイプ)ドロップダウンリストから[Repository] (リポジトリー)を選択し、[...]ボタンをクリックし、[Repository Content] (リポジトリーコンテンツ)ダイアログボックスを開いて、使用するHadoop接続を選択します。

   情報メモヒント: [Repository] (リポジトリー)で接続を設定すると、ジョブの[Spark configuration] (Spark設定)ビューで必要になるたびにその接続を設定しなくても済みます。フィールドが自動的に入力されます。
3. [Distribution] (ディストリビューション)ドロップダウンリストからUniversalを、[Version] (バージョン)ドロップダウンリストからSparkバージョンを、[Runtime mode/environment] (ランタイムモード/環境)ドロップダウンリストから EMR Serverlessをそれぞれ選択します。
4. WindowsでSparkジョブを実行する場合は、winutils.exeプログラムの場所を指定します:
   * 自分のwinutils.exeファイルを使用する場合は、[Define the Hadoop home directory] (Hadoop ホームディレクトリーを定義) チェックボックスをオンにし、そのフォルダーパスを入力します。
   * 逆に、[Define the Hadoop home directory] (Hadoopホームディレクトリーを定義)チェックボックスをオフにすると、Talend Studioによってディレクトリーが作成され、このジョブで自動的に使用されます。
5. 設定の基本情報を入力します:
   | パラメーター | 使用方法 |
   | --- | --- |
   | [Use local timezone] (ローカルタイムゾーンを使用) | このチェックボックスをオンにすると、Sparkはシステムで指定されているローカルタイムゾーンを使用します。<br><br>情報メモ注:<br><br><ul> <li>このチェックボックスをオフにすると、SparkはUTCタイムゾーンを使用します。</li> <li>コンポーネントによっては<span>[Use local timezone for date] (日付にローカルタイムゾーンを使用)</span>チェックボックスもあります。コンポーネントのチェックボックスをオフにすると、Spark設定からのタイムゾーンが継承されます。</li> </ul> |
   | [Use dataset API in migrated components] (移行したコンポーネントでデータセットAPIを使用) | このチェックボックスをオンにし、コンポーネントにResilient Distribued Dataset (RDD) APIの代わりにDataset (DS) APIを使用させます:<br><br><ul> <li>チェックボックスをオンにする場合は、ジョブ内のコンポーネントは、DSで実行されて、パフォーマンスが向上します。</li> <li>チェックボックスをオフにする場合は、ジョブ内のコンポーネントはRDDで実行されて、変更されていない状態のままです。これにより、下位互換性が保証されます。</li> </ul><br><br>このチェックボックスはデフォルトで選択されていますが、7.3以降のジョブをインポートした場合、これらのジョブはRDDで実行されるため、チェックボックスはクリアされます。<br><br>情報メモ重要: ジョブにtDeltaLakeInputコンポーネントとtDeltaLakeOutputコンポーネントが含まれている場合は、このチェックボックスを選択する必要があります。 |
   | [Use timestamp for dataset components] (データセットコンポーネントにタイムスタンプを使用) | このチェックボックスをオンにすると、日付でjava.sql.Timestamp使われます。<br><br>情報メモ注: このチェックボックスをオフのままにしておくと、パターンに応じてjava.sql.Timestampかjava.sql.Dateが使われます。 |
   | [Parallelize output files writing] (出力ファイルの書き込みを並列化) | このチェックボックスをオンにすると、Sparkバッチジョブが出力ファイルの書き込み時に複数のスレッドを並行して実行できるようになります。このオプションによって実行時間のパフォーマンスが改善されます。<br><br>このチェックボックスがオフのままになっていると、出力ファイルは1つのスレッドで順次書き込まれます。<br><br>サブジョブレベルでは、各サブジョブが順次処理されます。サブジョブ内の出力ファイルのみが並列化されます。<br><br>このオプションは、次の出力コンポーネントが含まれているSparkバッチジョブでのみ使用できます:<br><br><ul> <li>tAvroOutput</li> <li>tFileOutputDelimited (<span>[Use dataset API in migrated components] (移行したコンポーネントでデータセットAPIを使用)</span>チェックボックスが選択されている場合のみ)</li> <li>tFileOutputParquet</li> </ul><br><br>情報メモ重要: ジョブ実行中のメモリに関する問題を避けるため、このパラメーターを使用する前に、書き込まれるファイルのサイズと実行環境の容量を考慮する必要があります。 |
6. EMR Serverlessの設定情報を入力します:
   | パラメーター | 使用方法 |
   | --- | --- |
   | [AWS role ARN] (AWSロールARN) | SparkジョブがAWSリソースにアクセスするために必要な権限を付与する、IAMロールのARNを指定します。 |
   | [AWS access key] (AWSアクセスキー) | AWSサービスでSparkジョブを認証するためのアクセスキーIDを入力します。 |
   | [AWS region] (AWSリージョン) | Sparkジョブが実行され、AWSリソースがアクセスされる地理的リージョンを指定します。 |
   | [AWS secret key] (AWSシークレットキー) | AWSサービスでSparkジョブを認証するためのシークレットアクセスキーを入力します。 |
   | ]AWS session token] (AWSセッショントークン) | AWSサービスでSparkジョブを認証するための一時セッショントークンを入力します。 |
   | [Thread pool size for deployments tasks] (デプロイメントタスク用のスレッドプールサイズ) | デプロイメント操作の実行に使用する同時スレッドの最大数を設定します。 |
   | [AWS socket timeout in ms] (AWSソケットのタイムアウト(ミリ秒)) | SparkジョブがAWSサービスからのレスポンスを待機する最大時間(ミリ秒)を設定します。この時間を超えると、タイムアウトが発生します。 |
   | [AWS connection timeout in ms] (AWS接続のタイムアウト(ミリ秒)) | SparkジョブがAWSサービスとの接続を確立するまで待機する最大時間(ミリ秒)を設定します。この時間を超えると、タイムアウトが発生します。 |
   | [EMR application deployment timeout in ms] (EMRアプリケーションデプロイメントのタイムアウト(ミリ秒)) | SparkジョブがEMRアプリケーションのデプロイメントを待機する最大時間(ミリ秒)を設定します。この時間を超えると、タイムアウトが発生します。 |
   | [S3 JAR upload timeout in ms] (S3 JARアップロードのタイムアウト(ミリ秒)) | SparkジョブがAmazon S3へのJARファイルのアップロードを待機する最大時間(ミリ秒)を設定します。この時間を超えると、タイムアウトが発生します。 |
   | [Deploy new application] (新しいアプリケーションをデプロイ) | このチェックボックスをオンにすると、Sparkジョブで既存のアプリケーションを使用する代わりに、新しいEMR Serverlessアプリケーションを自動的にデプロイできるようになります。 |
   | [Application ID] (アプリケーションID) | Sparkジョブの実行に使用するEMR Serverlessアプリケーションの一意識別子を指定します。 |
   | [AWS S3 bucket name] (AWS S3バケット名) | Sparkジョブがデータを保存および取得するAmazon S3バケットの名前を指定します。 |
   | [AWS S3 key] (AWS S3キー) | Amazon S3バケットでオブジェクトキー(パスとファイル名)を指定します。Sparkジョブは、このバケットでファイルを保存または取得します。 |
7. [Spark "scratch" directory] (Spark "scratch"ディレクトリー)フィールドに、Talend Studioが一時ファイルを保存するローカルパス(転送するJARなど)を入力します。

   Windowsでジョブを実行する場合、デフォルトのディスクはC:です。このフィールドに/tmpを残すと、C:/tmpがディレクトリーとして使用されます。
8. ジョブを耐障害性にする場合は、[Activate checkpointing] (チェックポイントを有効化)をオンにしてSparkのチェックポイント操作を有効にします。

   [Checkpoint directory] (チェックポイントディレクトリー)フィールドには、Sparkがコンテキストデータ(メタデータや生成されたRDDなど)を保存するクラスターファイルシステムのパスを入力します。
9. [Advanced properties] (詳細プロパティ)テーブルに、Talend Studioによって設定されたデフォルトをオーバーライドしたいSparkプロパティを追加します。
10. データ来歴を追跡し、Sparkジョブのコンポーネントを表示させ、コンポーネント間のスキーマ変更を追跡する場合は、[Use Atlas] (アトラスを使用) チェックボックスをオンにします。

    このオプションはSpark Universal 3.3.xでのみ使用可能です。

    このオプションを有効にしたら、以下のパラメーターを設定する必要があります。
    * Atlas URL: Atlasインスタンスのアドレス(http://name\_of\_your\_atlas\_node:portなど)を入力します。

    * [Username] (ユーザー名)および[Password] (パスワード)フィールドに、Atlasにアクセスするための認証情報を入力します。

    * [Set Atlas configuration folder] (Atlas設定フォルダーを指定): AtlasクラスターがSSLや読み取りタイムアウトなどのカスタムプロパティを使用している場合は、このチェックボックスをオンにします。表示されるフィールドに、atlas-application.propertiesファイルが含まれているローカルディレクトリーへのパスを入力します。その後、ジョブはこれらのカスタムプロパティを使用するようになります。

      この設定ファイルについては、クラスターの管理者に依頼してください。詳細は、[\[Atlas configuration\] (Atlas設定)](https://atlas.apache.org/0.8.2/Configuration.html) (英語のみ)でクライアント設定セクションをご覧ください。

    * [Die on error] (エラー発生時に強制終了): このチェックボックスをオンにすると、Atlas関連の問題(接続エラーなど)が発生した場合にジョブの実行を停止します。クリアすると、ジョブが実行し続けるようになります。

## タスクの結果

これで接続詳細が完全なものになったので、Sparkジョブの実行をスケジュールしたり、すぐに実行したりできます。