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

## 手順

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

   [Hadoop接続を一元管理](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0-R2025-11/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] (ランタイムモード/環境)ドロップダウンリストからKubernetesをそれぞれ選択します。
4. [Kubernetes configuration] (Kubernetes設定)のパラメーターを完成させます:
   | パラメーター | 使用方法 |
   | --- | --- |
   | [Kubernetes submit mode] (Kubernetes送信モード) | KubernetesクラスターでのSparkジョブの実行で、Spark-submitを使って直接送信するか、Livy REST API経由で送信するか、Kubernetesの送信モードのタイプを選択します。 |
   | [Kubernetes master] (Kubernetesマスター) | APIサーバーアドレスをk8s://https://&lt;k8s-apiserver-host&gt;:&lt;k8s-apiserver-port&gt;という形式で入力します。コマンドラインインターフェイスでkubectl config view --minifyコマンドを使って、取得できます。 |
   | [Number of executor instances] (エグゼキューターインスタンスの数) | ジョブ実行に使用するエグゼキューターの数を入力します。 |
   | [Use registry secret] (レジストリーシークレットを使用) | 必要であれば、パスワードを入力してDockerイメージにアクセスします。 |
   | [Docker image] (Dockerイメージ) | 実行に使用するDockerイメージの名前を入力します。 |
   | ネームスペース | Dockerクラスターのネームスペースを入力します。 |
   | [Service account] (サービスアカウント) | 使用するサービスアカウントの名前を入力します。サービスアカウントは、Kubernetesクラスターで十分な権限がある必要があります。 |
   | [Cloud storage] (クラウドストレージ) | ドロップダウンリストから使いたいクラウドプロバイダーを選択して、対応するフィールドに情報と認証情報を入力します。 |
   | [Cloud storage] (クラウドストレージ) &gt; S3 | S3へ接続するよう、次のパラメーターを設定します:<br><br><ul> <li> <span>[Bucket] (バケット)</span> </li> <li> <span>[Path to folder] (フォルダーへのパス)</span> </li> <li> <span>[Credentials type] (認証情報のタイプ)</span> </li> <li> <span>[Access key] (アクセスキー)</span> </li> <li> <span>[Secret key] (シークレットキー)</span> </li> </ul> |
   | [Cloud storage] (クラウドストレージ) &gt; Blob | Azure Blob Storageへ接続するよう、次のパラメーターを設定します:<br><br><ul> <li> <span>[Path to folder] (フォルダーへのパス)</span> </li> <li> <span>[Storage account] (ストレージアカウント)</span> </li> <li> <span>[Container name] (コンテナー名)</span> </li> <li> <span>[Secret key] (シークレットキー)</span> </li> </ul> |
   | [Cloud storage] (クラウドストレージ) &gt; Adls gen 2 | ADLS Gen 2へ接続するよう、次のパラメーターを設定します:<br><br><ul> <li> <span>[Path to folder] (フォルダーへのパス)</span> </li> <li> <span>[Storage account] (ストレージアカウント)</span> </li> <li> <span>[Credentials type] (認証情報のタイプ)</span> </li> <li> <span>[Container name] (コンテナー名)</span> </li> <li> <span>[Secret key] (シークレットキー)</span> </li> </ul> |
   | [Cloud storage] (クラウドストレージ) &gt; HDFS | HDFSに接続する場合は、次のパラメーターを設定します:<br><br><ul> <li> <span>[Use Kerberos] (Kerberosを使用)</span> </li> <li> <span>[HDFS address] (HDFSアドレス)</span> </li> <li> <span>[User] (ユーザー)</span> </li> <li> <span>[Path to folder] (フォルダーへのパス)</span> </li> </ul> |
5. [Configuration] (設定)の基本情報を入力します:
   | パラメーター | 使用方法 |
   | --- | --- |
   | [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が使われます。 |
   | [Batch size (ms)] (バッチサイズ(ミリ秒)) | Spark Streamingジョブがソースデータをレビューして変更を特定し、新しいマイクロバッチを処理するまでの時間間隔を入力します。 |
   | [Define a streaming timeout (ms)] (ストリーミングタイムアウトを設定(ミリ秒)) | このチェックボックスをオンにし、表示されたフィールドにSpark Streamingジョブが自動的に実行を停止するまでの期間を入力します。<br><br>情報メモ注: Windows 10をお使いの場合は、Javaアプリケーションから終了シグナルを送信する際にWindows Service Wrapperに問題が発生しないよう、合理的なタイムアウトを設定することをお勧めします。このような問題が発生した場合、Azure Synapseワークスペースからジョブを手動でもキャンセルできます。 |
   | [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. [Set tuning properties] (チューニングプロパティを設定)チェックボックスをオンにし、[Apache Spark Batchジョブ用にSparkを調整](https://help.qlik.com/talend/ja-JP/components/8.0/spark-batch/tuning-spark-for-apache-spark-batch-jobs-spark-batch-component)の説明に従ってチューニングパラメーターを定義します。

   情報メモ重要: チューニングパラメーターを設定しない場合、エラー(400 - Bad request)が発生する可能性があります。
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プロパティを追加します。

## タスクの結果

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