Hortonworks接続パラメーターを定義 - Cloud - 8.0

Spark Batch

Version
Cloud
8.0
Language
日本語
Product
https://talend.poolparty.biz/coretaxonomy/17
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > ジョブデザイン > ジョブフレームワーク > Sparkバッチ
Last publication date
2024-04-15

ジョブの[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、Hortonworks接続設定を完成させます。この設定はジョブごとに有効です。

このセクションの情報は、Talend Data Fabric またはビッグデータ対応のTalend製品のいずれかにサブスクライブしているユーザーだけを対象とします。また、Talend Open Studio for Big Dataユーザーは対象外です。

手順

  1. 基本的な設定情報を入力します:
    [Use local timezone] (ローカルタイムゾーンを使用) このチェックボックスをオンにすると、Sparkはシステムで指定されているローカルタイムゾーンを使います。
    注:
    • このチェックボックスをオフにすると、SparkによってUTCタイムゾーンが使用されます。
    • コンポーネントによっては[Use local timezone for date] (日付にローカルタイムゾーンを使用)もあります
    [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.Timestampjava.sql.Dateが使われます。
  2. Hortonworksに基本的な接続情報を入力します。

    [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.xmlmapred-site.xmlなどの設定ファイル内にあるyarn.app.mapreduce.am.staging-dirプロパティの下にあります。

    • Kerberosセキュリティを実行しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表示されたフィールドにResourceManagerサービスおよびJobHistoryサービスとしてKerberosのプリンシパル名を入力します。これにより、ユーザー名を使って、Kerberosに保存された認証情報に対して認証を実行できます。これらのプリンシパルは、yarn-site.xmlmapred-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.xmlmapred-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ファイルの名前には、デフォルトで次のパターンが適用されます。
      hadoop-conf-[name_of_the_metadata_in_the_repository]_[name_of_the_context].jar
      また、自分のクラスターのWebコンソールからこのJARファイルをダウンロードしたり、自分のJARファイルのルートに設定ファイルを置くことでJARファイルを作成したりすることもできます。例:
      hdfs-sidt.xml
      core-site.xml

      自分のカスタムJARファイルからのパラメーターによって、[Spark configuration] (Sparck設定)フィールドに置いたパラメーターが上書きされます。前者のパラメーターはまた、関連するストレージシステム(HDFS、HBase、Hive)がHadoopに対してネイティブである場合は、tHDFSConfigurationtHBaseConfigurationといった設定コンポーネントで行った設定も上書きします。ただし、サードパーティのストレージシステム用の設定コンポーネント(tAzureFSConfigurationなど)で行われた設定は上書きしません。

    • Kerberosセキュリティを実行しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表示されたフィールドにResourceManagerサービスおよびJobHistoryサービスとしてKerberosのプリンシパル名を入力します。これにより、ユーザー名を使って、Kerberosに保存された認証情報に対して認証を実行できます。これらのプリンシパルは、yarn-site.xmlmapred-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にHDFS接続情報を提供するために使われるコンポーネント、tHDFSConfigurationに入力したユーザー名と同じにする必要があります。

  3. [Yarn client] (Yarnクライアント)モードでは、[Property type] (プロパティタイプ)リストが表示されるため、[Repository] (リポジトリー)でHadoop接続を既に作成してある場合は、その確立済みのHadoop接続を[Repository] (リポジトリー)から選択できます。接続の選択後、Studioによってこのジョブの接続情報のセットが再使用されます。
  4. Windowsから起動する必要がある場合は、使用するwinutils.exeプログラムの保存場所を指定することを推奨します。
    • 使用するwinutils.exeファイルの保管場所がわかっている場合、[Define the Hadoop home directory] (Hadoopホームディレクトリーの指定)チェックボックスをオンにし、winutils.exeが保存されているディレクトリーを入力します。

    • 逆に、このチェックボックスをオフにすると、Studioによってディレクトリーが作成され、このジョブで自動的に使用されます。

  5. [Spark "scratch" directory] (Spark "scratch"ディレクトリー)フィールドに、Studioが一時ファイル(転送するjarファイルなど)をローカルシステムに保存するディレクトリーを入力します。Windowsでジョブを起動する場合、デフォルトのディスクはC:です。このフィールドを/tmpのままにすると、このディレクトリーはC:/tmpになります。
  6. ジョブの実行時にhdp.version is not foundという問題が発生した場合は、[Set hdp.version] (hdp.versionの設定)チェックボックスをオンにして、ジョブとクラスターでhdp.version変数を定義します。

タスクの結果

  • 接続の設定後、必須ではありませんがSparkのパフォーマンスを調整できます。調整する場合は、以下に記載のプロセスに従います。
  • 問題が発生した場合にSparkジョブのデバッグや再開ができるよう、[Run] (実行)ビューの[Spark configuration] (Spark設定)タブでロギングとチェックポインティングを有効にしておくことをお勧めします:
  • MapReduceまたはSpark Batchジョブの実行にHortonworksデータプラットフォームV2.4以上を使用しており、HortonworksクラスターにApache Atlasがインストールされている場合は、Atlasを活用して特定のデータフローの来歴を追跡し、ジョブによりこのデータがどのように生成されたかを調べることができます。