# Apache Spark BatchのtS3Configurationプロパティ

これらのプロパティは、[Spark Batch]ジョブのフレームワークで実行されているtS3Configurationを設定するために使われます。

Spark BatchのtS3Configurationコンポーネントは、ストレージファミリーに属しています。

このフレームワークのコンポーネントは、すべてのサブスクリプションベースのビッグデータ対応のTalend製品およびTalend Data Fabricで利用できます。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Access Key] (アクセスキー) | AWSアカウントを一意に識別するアクセスキーIDを入力します。アクセスキーとシークレットキーを取得する方法は、[Getting Your AWS Access Keys](http://docs.aws.amazon.com/ses/latest/DeveloperGuide/get-aws-keys.html)をご覧ください。 |
| [Secret Key] (シークレットキー) | シークレットキーを入力します。シークレットキーは、アクセスキーと組み合わせてセキュリティ認証情報を構成します。<br><br>シークレットキーを入力するには、シークレットキーフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにシークレットキーを二重引用符の間に入力し、[OK] をクリックして設定を保存します。 |
| [Hadoop S3 version] (Hadoop S3バージョン) | 使用しているCassandraバージョンをドロップダウンリストから選択します。<br><br>クラスターにS3ライブラリーがある場合は、[Use cluster's libraries] (クラスターのライブラリーを使用)を選択し、一致していない依存項目をアップロードして競合を回避します。クラスターにS3ライブラリーがない場合は、そのクラスターのHadoopライブラリーと一致するバージョンを選択します。<br><br>このパラメーターは、Spark UniversalでSparkジョブがDatabricksモード、[Local] (ローカル)モード、[Standalone] (スタンドアロン)モードのいずれかによって実行されている場合は使用できません。 |
| [File System] (ファイルシステム) | ファイルシステムタイプをドロップダウンリストから選択します:<br><br><ul> <li><span>[S3A File System] (S3Aファイルシステム)</span> - Amazon S3へのアクセスに標準のHadoopコネクターを使用します。</li> <li><span>[EMR File System] (EMRファイルシステム)</span> - 整合性ビューや高度なAWS統合などの機能と共にAmazon EMRのコネクターを活用します。</li> </ul><br><br>このフィールドは、[Inherit credentials from AWS role] (AWSロールから認証情報を継承)チェックボックスをオンにした場合にのみ使用できます。 |
| [Use EMRFS consistent view] (EMRFS整合性ビューを使用) | このチェックボックスをオンにすると、EMRファイルシステム(EMRFS)の整合性ビューを利用できます。このオプションによってEMRクラスターは、EMRFSによって書き込まれたりEMRFSと同期したAmazon S3オブジェクトのリストや書き込み後の読み取り整合性をチェックできるようになります。<br><br>情報メモ注: 整合性のないエラーが発生することがあるため、単一のバケットでは整合性ビューを切り替えないようにしてください。この問題が発生した場合は、EMRFS CLIでsyncコマンドを使えば不整合性を修正できます。詳細は、[\[EMRFS CLI Reference\] (EMRFS CLI リファレンス)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emrfs-cli-reference.html)をご覧ください。<br><br>この機能はAmazon EMR 5.29ディストリビューションの使用時に利用できます。 |
| [EMRFS metadata table] (EMRFSメタデータテーブル) | 使用するメタデータDynamoDBテーブルの名前を入力します。<br><br>情報メモ注: デフォルトのメタデータテーブル名はEmrFSMetadataです。<br><br>このフィールドは、[Use EMRFS consistent view] (EMRFS整合性ビューを使用)チェックボックスをオンにした場合にのみ使用できます。 |
| [Bucket name] (バケット名) | 使用するバケットの名前とそのフォルダーを入力します。バケット名とフォルダー名はスラッシュ(/)で区切ってください。 |
| [Temp folder] (一時フォルダー) | S3の一時フォルダーの場所を入力します。このフォルダーは、実行時にまだなかった場合は自動的に作成されます。 |
| [Inherit credentials from AWS] (AWSから認証情報を継承) | お使いのIAMロールからAWSセキュリティ認証情報を取得する場合は、このチェックボックスをオンにします。このオプションはAmazon EMRクラスターとDatabricks on AWSクラスターで使用できます。このオプションを使用する場合は、クラスターを開始し、そのクラスターでジョブを実行する必要があります。詳細は、 [Using an IAM Role to Grant Permissions to Applications Running on Amazon EC2 Instances](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)をご覧ください。<br><br>このオプションを使用すると、ジョブにAWSキーを配置せずにジョブを開発できるため、組織のセキュリティポリシーに簡単に準拠できます。 |
| [Use SSE encryption] (SSE暗号化を使用) | このチェックボックスをオンにすると、AWSで有効になっているSSE-KMS暗号化サービスを使って、暗号化されたデータの読み取りまたは書き込みをS3で行うことができます。<br><br>EMR側では、デフォルトの暗号化機能を伴うSSE-KMSサービスが有効になっており、暗号化用に顧客管理CMKが指定されていることが必要です。<br><br>サーバー側の暗号化は、AWSのドキュメンテーションで[Protecting Data Using Server-Side Encryption](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html)をご覧ください。<br><br>Amazon S3バケットでデフォルトの暗号化機能を有効にする詳しい方法は、AWSドキュメンテーションで[Default encryption](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/default-bucket-encryption.html)をご覧ください。<br><br>これらのプロパティは、Amazon EMRディストリビューションを使用している場合のみ利用できます。 |
| [Bucket encryption] (バケット暗号化) | ドロップダウンリストから、バケットに使ったデフォルト暗号化を選択します。<br><br><ul> <li> <span>aws:kms</span>: AWS KMS-Managed Keys (SSE-KMS)によるサーバー側の暗号化</li> <li> <span>SSE-S3</span>: Amazon S3-Managed Keys (SSE-S3)によるサーバー側の暗号化</li> </ul><br><br>これらのプロパティは、Amazon EMRディストリビューションを使用している場合のみ利用できます。 |
| [in-transit] (転送中)の暗号化を使用する | 転送中のデータの暗号化を有効にするには、このチェックボックスをオンにします。<br><br>情報メモ注: デフォルトでは、輸送中の暗号化が選択されています。このオプションを無効にすると、KMS暗号化EMRクラスターをセットアップする必要はありません。<br><br>これらのプロパティは、SSE-KMS暗号化でAmazon EMRディストリビューションを使用している場合のみ利用できます。 |
| [Assume role] (ロールを引き受け) | このチェックボックスをオンにすると、ジョブにロールおよびこのロールに関連付けられた権限を担わせることができます。<br><br>このロールに関連付けられている信頼ポリシーによって、自分のユーザーアカウントにそのロールへのアクセスが付与されていることをご確認ください。不明であれば、そのロールの所有者かAWS管理者にお問い合わせください。<br><br>このチェックボックスをオンにした後、このロールに対して定義されているAWSシステムの管理者のパラメーターを指定します。<br><br><ul> <li><p><span>ARN</span>: 引き受けるロールのARN (Amazonリソース名)。このARN名は、AWSポータルで使用するロールの<span>[Summary] (概要)</span>ページで見つかります。このロールARNの形式は、たとえば<kbd>am:aws:iam::[aws_account_number]:role/[role_name]</kbd>となります。 </p><span>[Role session name] (ロールセッション名)</span>: 引き受けたロールセッションの一意識別に使用する名前を入力します。この名前には英字(大文字と小文字の両方)と数字を利用できますが、スペースを含めることはできません。また、アンダースコア( _ )の他、= , . @ - も使用できます。 </li> <li> <p><span>[Session duration (minutes)] (セッション処理時間(分))</span>: 引き受けたロールセッションをアクティブにする期間(分)。この期間をAWS管理者が設定した最大期間より長くすることはできません。値を指定しない場合、持続時間は3600秒がデフォルトとなります。 </p> </li> </ul><br><br>[External ID] (外部ID)パラメーターは、AWS管理者やそのロールの所有者がロールの信頼ポリシー設定時に外部IDを定義した場合のみ必要です。<br><br><ul> <li> <span>[Policy] (ポリシー)</span>: セッションポリシーとして使うIAMポリシーをJSON形式で入力します。セッションポリシーを使ってセッションの権限を制限します。結果として得られるセッションの権限は、そのロールのIDベースのポリシーとセッションポリシーの中間となります。</li> <li> <span>[Policy ARNs] (ポリシーARN)</span>: マネージドセッションポリシーとして使うIAMマネージドポリシーのAmazon Resource Names(ARN)を入力します。マネージドセッションポリシーを使ってセッションの権限を制限します。このポリシーはロールと同じアカウントに存在することが必要です。結果として得られるセッションの権限は、そのロールのIDベースのポリシーとセッションポリシーの中間となります。</li> <li> <span>[Serial Number] (シリアル番号)</span>: ロールを引き受けた場合、そのロールの信頼ポリシーで多エレメント認証(MFA)が必要になることがあります。その際は、ロールを引き受けるユーザーに関連付けられているハードウェアや仮想MFAデバイスの識別番号を指定する必要があります。</li> <li> <span>[Tags] (タグ)</span>: キー-値ペアという形式でセッションタグをリスト表示します。ポリシーでこれらのセッションタグを使えば、リクエストへのアクセスを許可したり拒否したりできます。</li> <li> <span>[Token Code] (トークンコード)</span>: ロールを引き受けた場合、そのロールの信頼ポリシーで多エレメント認証(MFA)が必要になることがあります。その際は、トークンコードを指定する必要があります。このトークンコードは、MFAデバイスによって生成される時間ベースのワンタイムパスワードです。</li> <li> <span>[Transitive Tag Keys] (推移的なタグキー)</span>: ロールチェーン内の次のロールに永続化するキー-値ペアの形式でセッションタグをリスト表示します。</li> </ul><br><br>加えて、AWS管理者がレスポンスパフォーマンスを向上させるため特定のリージョンのSTSエンドポイントを有効にしている場合、[Advanced settings] (高度な設定)タブの[Set STS region](STSリージョンの設定)チェックボックスまたは[Set STS endpoint] (STSエンドポイントの設定)チェックボックスを使用します。<br><br>このチェックボックスは、Talendがサポートする次のディストリビューションでのみ利用できます:<br><br><ul> <li> <p>CDH 5.10以降(最新Clouderaディストリビューションのダイナミックサポートを含む)</p> </li> <li> <p>HDP 2.5以降</p> </li> <li> <p>EMR 5.15以降</p> </li> <li>CDP Private Cloud Base 7.1 </li> </ul><br><br>このチェックボックスは、[Local] (ローカル) Sparkモードの[Spark configuration] (Spark設定)タブでSpark V1.6以降を使用している時にも利用できます。 |
| [KMS key id] (KMSキーID) | 暗号化に使用する顧客管理CMKのIDを入力します。<br><br>情報メモ注: 次のいずれかの形式を使用できます。<br><br><ul> <li>arn:aws:kms:region:account-id:key/key-id</li> <li>key-id</li> </ul><br><br>[KMS key id] (KMSキーID)フィールドは、[Use SSE-KMS encryption] (SSE暗号化を使用)チェックボックスをオンにした場合にのみ使用できます。この機能はAmazon EMR distribution ディストリビューションをSparkとともに使用している時に利用できます。 |
| [Set region] (リージョンの設定) | このチェックボックスをオンにして、接続先のリージョンを選択します。<br><br>この機能は、次のディストリビューションのいずれかをSparkと使用している場合に利用できます。<br><br><ul> <li> <p>Amazon EMR V4.5～V5.15 EMRはEMRFS V5.29以降を使います</p> </li> <li> <p>MapR V5.0以降 </p> </li> <li> <p>Hortonworks Data Platform V2.4以降 </p> </li> <li> <p>Cloudera V5.8以降(Cloudera V5.8ではSparkバージョン2.0を使用してください)</p> </li> <li>Cloudera Altus</li> </ul> |
| [Set endpoint] (エンドポイントの設定) | このチェックボックスをオンにすると、[Endpoint] (エンドポイント)フィールドが表示されるので、使用する必要があるAmazonのリージョンのエンドポイントを入力します。利用可能なエンドポイントのリストは、[Regions and Endpoints](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)をご覧ください。<br><br>このチェックボックスを解除すると、エンドポイントは、Hadoopディストリビューションによって定義されたデフォルトのエンドポイントになりますが、[Set region] (リージョンを設定)をオンにすると、このチェックボックスは利用できず、その場合は[Set region] (リージョンを設定)リストで選択した値が使用されます。<br><br>この機能は、次のディストリビューションのいずれかをSparkと使用している場合に利用できます。<br><br><ul> <li> <p>Amazon EMR V4.5～V5.15 EMRはEMRFS V5.29以降を使います</p> </li> <li> <p>MapR V5.0以降 </p> </li> <li> <p>Hortonworks Data Platform V2.4以降 </p> </li> <li> <p>Cloudera V5.8以降(Cloudera V5.8ではSparkバージョン2.0を使用してください)</p> </li> <li>Cloudera Altus</li> </ul> |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Set region] (リージョンを設定)と[Set endpoint] (エンドポイントを設定) | レスポンスパフォーマンスを向上させるため使用するリージョンのSTSエンドポイントをAWS管理者が有効にしている場合は、[Set region] (リージョンを設定)チェックボックスをオンにした後、使用するリージョナル エンドポイントを選択します。<br><br>このリージョナルエンドポイントリストで使いたいエンドポイントが利用できない場合は、[Set region] (リージョンを設定)チェックボックスを消去した後、[Set endpoint] (エンドポイントを設定)チェックボックスをオンにして、使用されるエンドポイントを入力します。<br><br>このサービスを利用すれば、AWSユーザー認証のため、一時的かつ権限が限定された認証情報を要求できます。そのため、使用するAWSアカウントを認証する場合は引き続きアクセスキーとシークレットキーを入力する必要があります。<br><br>使用できる STSエンドポイントの一覧の詳細は、[\[AWS Security Token Service\] (AWSセキュリティトークンサービス)](https://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region)をご覧ください。STS一時認証情報の詳細の詳細は、[\[Temporary Security Credentials\] (一時的なセキュリティ認証情報)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)をご覧ください。両方の記事はAWSドキュメントからのものです。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは、他のコンポーネントに接続せずに使用されます。<br><br>ジョブごとに複数のtS3Configurationコンポーネントを使用できます。[Assume role] (ロールを引き受け)オプションは、複数のtS3Configurationコンポーネントに追加できます。<br><br>設定がランタイムにジョブ全体で使われるように、tS3Configurationと共に、実行するファイルシステム関連のサブジョブを同じジョブにドロップする必要があります。 |
| [Spark Connection] (Spark接続) | [Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。<br><br><ul> <li> <div> <span>Yarnモード</span>(YarnクライアントまたはYarnクラスター):<ul> <li> <p>Google Dataprocを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Google Storage staging bucket] (Google Storageステージングバケット)</span>フィールドにバケットを指定します。</p> </li> <li> <p>HDInsightを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Windows Azure Storage configuration] (Windows Azure Storage設定)</span>エリアでジョブのデプロイメントに使用するブロブを指定します。</p> </li> <li>Altusを使用する場合は、<span>[Spark configuration] (Spark設定)</span>タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。</li> <li> <p>オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration">tHDFSConfiguration</a>を使用します。</p> </li> </ul> </div> </li> <li> <p> <span>[Standalone mode] (スタンドアロンモード)</span>: クラスターで使われているファイルシステム(<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a>や<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/amazon-s3/ts3configuration-properties-for-apache-spark-batch">tS3Configuration Apache Spark Batch</a>など)に対応する設定コンポーネントを使用します。</p> <p>ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。</p> </li> </ul><br><br>この接続は、ジョブごとに有効になります。 |
| 制限事項 | ライセンスの互換性の問題のため、このコンポーネントの使用に必要な1つ以上のJARが提供されていません。この特定のコンポーネントに不足しているJARをインストールするには、Component (コンポーネント)タブビューの[Install] (インストール)ボタンをクリックします。Talend StudioのIntegrationパースペクティブにある[Modules] (モジュール)タブでも、不足しているすべてのJARを簡単に見つけて追加できます。詳細は、[外部モジュールをインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/installing-external-modules)をご覧ください。 |