EMR接続パラメーターを定義
ジョブの[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、EMR接続設定を完成させます。この設定はジョブごとに有効です。
このセクションの情報は、Talend Data Fabric、またはビッグデータ関連のTalend製品のいずれかにサブスクライブしているユーザーのみが対象です。
手順
-
基本的な設定情報を入力します:
[Use local timezone] (ローカルタイムゾーンを使用) このチェックボックスをオンにすると、Sparkはシステムで指定されているローカルタイムゾーンを使います。 情報メモ注:- このチェックボックスをオフにすると、SparkによってUTCタイムゾーンが使用されます。
- コンポーネントによっては[Use local timezone for date] (日付にローカルタイムゾーンを使用)チェックボックスもあります。コンポーネントのチェックボックスをオフにすると、Spark設定からのタイムゾーンを継承します。
[Use dataset API in migrated components] (移行したコンポーネントでデータセットAPIを使用) このチェックボックスを選択し、コンポーネントにResilient Distribued Dataset (RDD) APIの代わりにDataset (DS) APIを使用させます: - チェックボックスを選択する場合は、ジョブ内のコンポーネントは、DSで実行されて、パフォーマンスが向上します。
- チェックボックスをオフにする場合は、ジョブ内のコンポーネントは、RDDで実行されて、変更されていない状態のままです。これにより、下位互換性が保証されます。
情報メモ重要: ジョブにtDeltaLakeInputコンポーネントとtDeltaLakeOutputコンポーネントが含まれている場合は、このチェックボックスを選択する必要があります。情報メモ注: 7.3で新しく作成されたジョブはDSを使用し、7.3以前のバージョンからインポートされたジョブはデフォルトでRDDを使用します。しかし、すべてのコンポーネントがRDDからDSに移行されないため、デフォルトでエラーを避けるには、チェックボックスをオフにすることをお勧めします。[Use timestamp for dataset components] (データセットコンポーネントにタイムスタンプを使用) このチェックボックスをオンにすると、日付でjava.sql.Timestamp使われます。 情報メモ注: このチェックボックスをオフのままにしておくと、パターンに応じてjava.sql.Timestampかjava.sql.Dateが使われます。 -
EMRに基本的な接続情報を入力します。
[Yarn client] (Yarnクライアント)
StudioはSparkドライバーを実行してジョブの実行方法をオーケストレーション化し、特定のHadoopクラスターのYarnサービスにそのオーケストレーション化を送信して、そのYarnサービスのリソースマネージャーが適宜実行リソースを要求できるようにします。
Yarnクライアントモードを使用している場合は、対応するフィールドに次のパラメーターを設定します(サービスのチェックボックスをオフにすると、使用するHadoopクラスターのこのパラメーターに関する設定が実行時に無視されます)。
-
[Resource manager] (リソースマネージャー)のデータノード使用フィールドに、使用するHadoopクラスターのResourceManagerサービスのアドレスを入力します。
-
[Set resourcemanager scheduler address] (リソースマネージャースケジューラーアドレスの設定)チェックボックスをオンにして、表示されたフィールドにスケジューラーアドレスを入力します。
-
[Set jobhistory address] (ジョブ履歴アドレスの設定)チェックボックスをオンにして、使用するHadoopクラスターのJobHistoryサーバーの場所を入力します。これにより、現在のジョブのメトリックス情報がそのJobHistoryサーバーに保存されます。
-
[Set staging directory] (ステージングディレクトリーの設定)チェックボックスをオンにして、実行プログラムで作成される一時ファイル用のHadoopクラスターで定義されたこのディレクトリーを入力します。一般的には、このディレクトリーはディストリビューションのyarn-site.xmlやmapred-site.xmlなどの設定ファイル内にあるyarn.app.mapreduce.am.staging-dirプロパティの下にあります。
-
Kerberosセキュリティを実行しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表示されたフィールドにResourceManagerサービスおよびJobHistoryサービスとしてKerberosのプリンシパル名を入力します。これにより、ユーザー名を使って、Kerberosに保存された認証情報に対して認証を実行できます。これらのプリンシパルは、yarn-site.xmlやmapred-site.xmlなど、ディストリビューションの設定ファイル内にあります。
ログインにKerberosのkeytabファイルが必要な場合は、[Use a keytab to authenticate] (認証にkeytabを使用)チェックボックスをオンにします。keytabファイルには、Kerberosのプリンシパルと暗号化されたキーのペアが含まれています。使用するプリンシパルを[Principal] (プリンシパル)フィールドに入力し、keytabファイルへのアクセスパスを[Keytab] フィールドに入力します。このkeytabファイルは、ジョブが実際に実行されているマシン、たとえば、Talend Jobserverに保存する必要があります。
keytabが有効なジョブは、プリンシパルに任命されたユーザーでなくても実行できますが、使用するkeytabファイルの読み取り権限が必要です。たとえばuser1というユーザー名でジョブを実行し、使用するプリンシパルがguestの場合、user1に使用するキータブファイルの読み取り権限があることをご確認ください。
-
[User name] (ユーザー名)フィールドは、認証にKeroberosを使っていない場合に利用できます。[User name] (ユーザー名)フィールドに、ディストリビューションにログインするためのユーザー名を入力します。このフィールドを空白のままにすると、Studioをホストするマシンのユーザー名が使用されます。
-
ジョブが起動されたマシンをSparkクラスターが認識できない場合は、この[Define the driver hostname or IP address] (ドライバーホスト名またはIPアドレスを指定)チェックボックスをオンにして、このマシンのホスト名またはIPアドレスを入力します。この設定により、Sparkマスターとそのワーカーはこのマシンを認識して、ジョブとそのドライバーを見つけることができます。
このような場合、このマシンの名前とIPアドレスもそのホストファイルに追加する必要があります。
[Yarn cluster] (Yarnクラスター)
ジョブの実行方法はYarnクラスターで実行されているSparkドライバーにより調整されます。
Yarnクラスターモードを使用している場合は、対応するフィールドに次のパラメーターを定義する必要があります(サービスのチェックボックスをオフにしたままにすると、このパラメーターに関する設定は、実行時に使用されるHadoopクラスターで無視されます):
-
[Resource manager] (リソースマネージャー)のデータノード使用フィールドに、使用するHadoopクラスターのResourceManagerサービスのアドレスを入力します。
-
[Set resourcemanager scheduler address] (リソースマネージャースケジューラーアドレスの設定)チェックボックスをオンにして、表示されたフィールドにスケジューラーアドレスを入力します。
-
[Set jobhistory address] (ジョブ履歴アドレスの設定)チェックボックスをオンにして、使用するHadoopクラスターのJobHistoryサーバーの場所を入力します。これにより、現在のジョブのメトリックス情報がそのJobHistoryサーバーに保存されます。
-
[Set staging directory] (ステージングディレクトリーの設定)チェックボックスをオンにして、実行プログラムで作成される一時ファイル用のHadoopクラスターで定義されたこのディレクトリーを入力します。一般的には、このディレクトリーはディストリビューションのyarn-site.xmlやmapred-site.xmlなどの設定ファイル内にあるyarn.app.mapreduce.am.staging-dirプロパティの下にあります。
-
Set path to custom Hadoop configuration JAR (パスをカスタムHadoop設定JARに設定): [Repository] (リポジトリー)で定義した接続を使ってClouderaやHortonworksのクラスターに接続している場合は、[Repository] (リポジトリー)ウィザードでこのチェックボックスをオンにし、表示されるフィールドで、Hadoop環境の接続パラメーターが含まれているJARファイルへのパスを指定します。このファイルはジョブの起動元であるマシンからアクセス可能であることが必要です。
この種類のHadoop設定JARファイルは、Studioでビッグデータジョブをビルドする時に自動生成されます。このJARファイルの名前には、デフォルトで次のパターンが適用されます。また、自分のクラスターのWebコンソールからこのJARファイルをダウンロードしたり、自分のJARファイルのルートに設定ファイルを置くことでJARファイルを作成したりすることもできます。例:hadoop-conf-[name_of_the_metadata_in_the_repository]_[name_of_the_context].jar
hdfs-sidt.xml core-site.xml
自分のカスタムJARファイルからのパラメーターによって、[Spark configuration] (Sparck設定)フィールドに置いたパラメーターが上書きされます。前者のパラメーターはまた、関連するストレージシステム(HDFS、HBase、Hive)がHadoopに対してネイティブである場合は、tHDFSConfigurationやtHBaseConfigurationといった設定コンポーネントで行った設定も上書きします。ただし、サードパーティのストレージシステム用の設定コンポーネント(tAzureFSConfigurationなど)で行われた設定は上書きしません。
-
Kerberosセキュリティを実行しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表示されたフィールドにResourceManagerサービスおよびJobHistoryサービスとしてKerberosのプリンシパル名を入力します。これにより、ユーザー名を使って、Kerberosに保存された認証情報に対して認証を実行できます。これらのプリンシパルは、yarn-site.xmlやmapred-site.xmlなど、ディストリビューションの設定ファイル内にあります。
ログインにKerberosのkeytabファイルが必要な場合は、[Use a keytab to authenticate] (認証にkeytabを使用)チェックボックスをオンにします。keytabファイルには、Kerberosのプリンシパルと暗号化されたキーのペアが含まれています。使用するプリンシパルを[Principal] (プリンシパル)フィールドに入力し、keytabファイルへのアクセスパスを[Keytab] フィールドに入力します。このkeytabファイルは、ジョブが実際に実行されているマシン、たとえば、Talend Jobserverに保存する必要があります。
keytabが有効なジョブは、プリンシパルに任命されたユーザーでなくても実行できますが、使用するkeytabファイルの読み取り権限が必要です。たとえばuser1というユーザー名でジョブを実行し、使用するプリンシパルがguestの場合、user1に使用するキータブファイルの読み取り権限があることをご確認ください。
-
[User name] (ユーザー名)フィールドは、認証にKeroberosを使っていない場合に利用できます。[User name] (ユーザー名)フィールドに、ディストリビューションにログインするためのユーザー名を入力します。このフィールドを空白のままにすると、Studioをホストするマシンのユーザー名が使用されます。
-
[Wait for the Job to complete] (ジョブの終了を待機)チェックボックスをオンにしてStudio、またはTalendJobServerを使用している場合はジョブJVMで、ジョブの実行完了までジョブの監視を続けます。このチェックボックスをオンにすると、spark.yarn.submit.waitAppCompletionプロパティをtrueに設定したことになります。通常はSpark Batchジョブの実行時にこのチェックボックスを選択すると便利ですが、Spark Streamingジョブを実行する場合はチェックボックスをオフにしたほうが賢明です。
YARNクライアントモードのユーザー名は、SparkにS3接続情報を提供するために使われるtS3Configurationコンポーネントに入力したユーザー名と同じにする必要があります。
-
- [Yarn client] (Yarnクライアント)モードでは、[Property type] (プロパティタイプ)リストが表示されるため、[Repository] (リポジトリー)でHadoop接続を既に作成してある場合は、その確立済みのHadoop接続を[Repository] (リポジトリー)から選択できます。接続の選択後、Studioによってこのジョブの接続情報のセットが再使用されます。
-
Windowsから起動する必要がある場合は、使用するwinutils.exeプログラムの保存場所を指定することを推奨します。
-
使用するwinutils.exeファイルの保管場所がわかっている場合、[Define the Hadoop home directory] (Hadoopホームディレクトリーの指定)チェックボックスをオンにし、winutils.exeが保存されているディレクトリーを入力します。
-
逆に、このチェックボックスをオフにすると、Studioによってディレクトリーが作成され、このジョブで自動的に使用されます。
-
- [Spark "scratch" directory] (Spark "scratch"ディレクトリー)フィールドに、Studioが一時ファイル(転送するjarファイルなど)をローカルシステムに保存するディレクトリーを入力します。Windowsでジョブを起動する場合、デフォルトのディスクはC:です。その結果、このフィールドを/tmpのままにすると、このディレクトリーはC:/tmpになります。
タスクの結果
-
接続の設定後、必須ではありませんがSparkのパフォーマンスを調整できます。調整する場合は、以下に記載のプロセスに従います。
-
Spark BatchジョブであればApache Spark Batchジョブ用にSparkを調整
-
Spark StreamingジョブであればApache Spark Streamingジョブ用にSparkを調整
-
-
問題が発生した場合にSparkジョブのデバッグや再開ができるよう、[Run] (実行)ビューの[Spark configuration] (Spark設定)タブでロギングとチェックポインティングを有効にしておくことをお勧めします: