ジョブの[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、EMR接続設定を完成させます。この設定は、ジョブごとに有効です。
このセクションの情報は、Talend Data Fabric またはビッグデータ対応のTalend製品のいずれかにサブスクライブしているユーザーだけを対象とします。また、Talend Open Studio for Big Dataユーザーは対象外です。
手順
-
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に使用するkeytabファイルの読み取り権限があることを確認してください。
-
[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に使用するkeytabファイルの読み取り権限があることを確認してください。
-
[User name] (ユーザー名)フィールドは、認証にKeroberosを使っていない場合に使用できます。[User name] (ユーザー名)フィールドに、ディストリビューションにログインするためのユーザー名を入力します。このフィールドを空白のままにすると、Studioをホストするマシンのユーザー名が使用されます。
-
[Wait for the Job to complete] (ジョブの終了を待機)チェックボックスを選択してStudio、またはTalendジョブサーバーを使用している場合はジョブ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"ディレクトリー)フィールドで、転送するjarファイルなどの一時ファイルをStudioがローカルシステムに保存するディレクトリーを入力します。Windowsでジョブを起動する場合、デフォルトのディスクはC:です。このフィールドを/tmpのままにすると、このディレクトリーはC:/tmpになります。
タスクの結果
-
接続の設定後、必須ではありませんがSparkのパフォーマンスを調整できます。調整する場合は、以下に記載のプロセスに従います。
-
Apache Spark BatchジョブでのSparkの調整 (Spark Batchジョブの場合)
-
Apache Spark StreamingジョブでのSparkの調整 (Spark Streamingジョブの場合)
-
-
問題が発生した場合にSparkジョブのデバッグや再開ができるよう、[Run] (実行)ビューの[Spark configuration] (Spark設定)タブでロギングとチェックポインティングを有効にしておくことをお勧めします: