Apache Spark BatchのtHDFSConfigurationプロパティ - 7.2

HDFS

EnrichVersion
7.2
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Open Studio for Big Data
Talend Real-Time Big Data Platform
EnrichPlatform
Talend Studio
task
ジョブデザインと開発 > サードパーティーシステム > ファイルコンポーネント > HDFS
データガバナンス > サードパーティーシステム > ファイルコンポーネント > HDFS
データクオリティとプレパレーション > サードパーティーシステム > ファイルコンポーネント > HDFS

これらのプロパティを使って、Spark Batchジョブフレームワーク内で実行されているtHDFSConfigurationを設定します。

Spark BatchtHDFSConfigurationコンポーネントはストレージファミリーのコンポーネントです。

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

基本設定

[Property type] (プロパティタイプ)

[Built-In] (組み込み)または[Repository] (リポジトリー)のいずれか。

[Built-In] (組み込み): プロパティデータは一元的に保存されません。

[Repository] (リポジトリー): プロパティを保存するリポジトリーファイルを選択します。

[Distribution] (ディストリビューション)

使用するクラスターはドロップダウンリストから選択します。リストのオプションは使用するコンポーネントによって異なります。これらのオプションの中でも、以下のオプションを使用するには特定の設定が必要です。
  • この[Distribution] (ディストリビューション)ドロップダウンリストに[Microsoft HD Insight]オプションが表示されている場合は、Microsoft HD Insightクラスターを使用できます。この場合、表示されているエリアでクラスターのHD Insightクラスター、Windows Azure Storageサービスへの接続を設定する必要があります。これらのパラメーターの詳細な説明は、Talendヘルプセンター(https://help.talend.com)で手動による接続の設定を検索してください。

  • Amazon EMRを選択している場合は、Talendヘルプセンター(https://help.talend.com)でAmazon EMRを開始する方法を参照してください。

  • [Custom] (カスタム)オプションを使用すると、リストにあるディストリビューションのものとは異なるクラスター、つまり、Talendが正式にサポートしていないクラスターに接続できます。

  1. [Import from existing version] (既存のバージョンからインポート)を選択すると、正式にサポートされているディストリビューションをベースとしてインポートしてから、ベースディストリビューションで提供されていない他の必要なjarファイルを追加できます。

  2. [Import from zip] (zipからインポート)を選択すると、使用するカスタムディストリビューションの設定zipファイルをインポートできます。zipファイルには、Hadoopの各種エレメントのライブラリーおよびこれらのライブラリーのインデックスファイルが含まれている必要があります。

    Talend Exchangeでは、 Talend コミュニティのメンバーがすぐに使える設定用ZIPファイルを共有しています。ファイルはこの[Hadoop configuration] (Hadoop設定)リストからダウンロードし、接続に直接使用できます。ただし、様々なHadoop関連のプロジェクトが継続的に進展しているため、このリストから対応するディストリビューションの設定Zipが見つからないことがあります。その場合は、[Import from existing version] (既存のバージョンからインポート)オプションを使って、既存のディストリビューションをベースとして取得し、ディストリビューションに必要なjarを追加することをお勧めします。

    カスタムバージョンは Talend によって正式にサポートされていない点に留意してください。Talendとそのコミュニティは、Studioからカスタムバージョンに接続する機会を提供していますが、利用可能なHadoopのディストリビューションとバージョンが多岐にわたるため、お使いになるどのバージョンでも設定が容易であるとは保証できかねます。そのような接続のセットアップは、Hadoopについてどんな問題でもご自身で対処できる十分な経験をお持ちの場合のみ行ってください。

    注:

    カスタムディストリビューションとこのコンポーネント間で作成する接続に関わるjarファイルがインポートされるように、このダイアログボックスの有効なチェックボックスをオフにしないでください。

    カスタムディストリビューションに接続して、その接続を共有する方法を段階的に説明する例については、Hortonworksを参照してください。

[Hadoop version] (Hadoopのバージョン)

使用しているHadoopのディストリビューションのバージョンを選択します。使用可能なオプションは、使用しているコンポーネントによって異なります。

[Use Kerberos authentication] (Kerberos認証の使用)

Kerberosセキュリティを実行しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表示されるフィールドにネームノードとしてKerberosのプリンシパル名を入力します。これにより、ユーザー名を使って、Kerberosに保存された認証情報に対して認証を実行できます。
  • このクラスターが5.0.0バージョン以上のMapRクラスターである場合、bml1550477845359.htmlに記載の説明に従って、MapRチケット認証設定を追加または代替として設定できます。

    この設定により、ジョブで定義されたユーザー名用の新しいMapRセキュリティチケットが実行ごとに生成されます。同じユーザー名に対して発行された既存のチケットを再使用する必要がある場合は、[Force MapR ticket authentication] (MapRチケット認証を強制)チェックボックスと[Use Kerberos authentication] (Kerberos認証の使用)チェックボックスをオフにすると、そのチケットを即座に自動的に見つけることができます。

このチェックボックスは、接続しているHadoopのディストリビューションによっては、表示されないこともあります。

[Use a keytab to authenticate] (Keytabを認証に使用)

[Use a keytab to authenticate] (Keytabを認証に使用)チェックボックスをオンにして、所定のkeytabファイルを使ってKerberos対応のシステムにログインします。keytabファイルには、Kerberosのプリンシパルと暗号化されたキーのペアが含まれています。使用するプリンシパルを[Principal] (プリンシパル)フィールドに入力し、keytabファイルへのアクセスパスを[Keytab] フィールドに入力します。このkeytabファイルは、ジョブが実際に実行されているマシン、たとえば、Talend Jobserverに保存する必要があります。

keytabが有効なジョブは、プリンシパルに任命されたユーザーでなくても実行できますが、使用するkeytabファイルの読み取り権限が必要です。たとえば、user1というユーザー名でジョブを実行し、使用するプリンシパルがguestの場合、user1に使用するkeytabファイルの読み取り権限があることを確認してください。

NameNode URI (ネームノードURI)

Hadoopシステムのマスターノード、Hadoop NameNodeのURIを入力します。たとえば、NameNodeとしてmasternodeという名前のマシンを選択した場合、その場所はhdfs://masternode:portnumberになります。 WebHDFSを使用している場合、ロケーションはwebhdfs://masternode:portnumberとなります。WebHDFS with SSLはまだサポートされていません。

[User name] (ユーザー名)

[User name] (ユーザー名)フィールドは、認証にKeroberosを使っていない場合に使用できます。[User name] (ユーザー名)フィールドに、ディストリビューションにログインするためのユーザー名を入力します。このフィールドを空白のままにすると、Studioをホストするマシンのユーザー名が使用されます。

グループ

HDFSインスタンスが起動された認証ユーザーを含めたメンバーシップを入力します。このフィールドは、使用しているHadoopのディストリビューションによっては、表示されないこともあります。

[Use datanode hostname] (データノードホスト名を使用)

[Use datanode hostname] (データノードホスト名を使用)チェックボックスをオンにして、これらのホスト名によるデータノードへのアクセスをジョブに許可します。これは、実際にはdfs.client.use.datanode.hostnameプロパティをtrueに設定しています。S3Nファイルシステムに接続する場合、このチェックボックスをオンにする必要があります。

[Hadoop properties] (Hadoopプロパティ)

Talend Studioでは、Hadoopディストリビューションの処理を実行するエンジンにデフォルト設定を使用しています。特定の場合にカスタム設定を使用する必要がある場合は、カスタマイズするプロパティをこのテーブルで設定します。設定後、カスタマイズしたプロパティによってこれらのデフォルトのプロパティがランタイム時に上書きされます。
  • [Repository] (リポジトリー)に一元的に保管されたメタデータを使用している場合、テーブルにはそのメタデータで定義されたプロパティが自動的に継承されます。[Property type] (プロパティタイプ)[Repository] (リポジトリー)から[Built-in] (組み込み)に変更しないと、テーブルは編集できなくなります。

Hadoop、およびHDFSやHiveなどのその関連システムで必要なプロパティの詳細は、使用しているHadoopディストリビューションのドキュメントを参照するか、http://hadoop.apache.org/docsに掲載されているApacheのHadoopのドキュメントを参照し、必要なバージョンのドキュメントを選択してください。以下のリンクでは、一部のプロパティについて実例を紹介しています。

[Setup HDFS encryption configurations] (HDFS暗号化設定)

HDFSの透過的暗号化をクラスターで有効にしている場合は、[Setup HDFS encryption configurations] (HDFS暗号化設定)チェックボックスをオンにし、[HDFS encryption key provider] (HDFS暗号鍵プロバイダー)フィールドが表示されたら、KMSプロキシのロケーションを入力します。

HDFSの透過的暗号化とそのKMSプロキシの詳細は、Transparent Encryption in HDFSを参照してください。

使用方法

[Usage rule] (使用ルール)

このコンポーネントは、他のコンポーネントに接続せずに使われます。

設定がランタイム時にジョブ全体で使用されるように、tHDFSConfiguration、および実行するサブジョブに関わるファイルシステムを同じジョブにドロップする必要があります。

このコンポーネントは、所属するSpark Batchコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。

特に明記していない限り、このドキュメントのシナリオでは、[Standard] (標準)ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。

前提条件

Talend Studioとの操作を確実に行うには、Hadoopディストリビューションを適切にインストールする必要があります。以下のリストに、MapR関連の情報などを示します。

  • MapRクライアントは必ずStudioのあるマシンにインストールして、そのマシンのPATH変数にMapRクライアントライブラリーを追加します。MapRのドキュメンテーションによると、各OSバージョンに対応するMapRクライアントのライブラリーは、MAPR_INSTALL\ hadoop\hadoop-VERSION\lib\nativeにあるとされています。たとえば、Windows版のライブラリーは、\lib\native\MapRClient.dllにあるMapRクライアントのjarファイルにあります。詳細は、MapRからhttp://www.mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment-for-maprを参照してください。

    指定のライブラリーを追加しないと、no MapRClient in java.library.pathというエラーが発生する可能性があります。

  • たとえば、[Window] (ウィンドウ)メニューの[Preferences] (環境設定)ダイアログボックスにある[Run/Debug] (実行/デバッグ)ビューの[Job Run VM arguments] (ジョブ実行VMの引数)エリアで、-Djava.library.path引数を設定します。この引数により、そのMapRクライアントのネイティブライブラリーへのパスがStudioに渡されるので、サブスクリプションベースのユーザーはデータビューアーをフルに活用して、MapRに保存されたデータをStudioでローカルに表示できます。

Hadoopディストリビューションのインストール方法の詳細は、使用しているHadoopディストリビューションに対応するマニュアルを参照してください。

[Spark Connection] (Spark接続)

[Run] (実行)ビューの[Spark Configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリを指定する必要があります。
  • Yarnモード(YarnクライアントまたはYarnクラスター):

    オンプレミスのディストリビューションを使用する場合は、クラスターで使用されているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

    実際、このコンポーネントは、従来のオンプレミスのHadoopディストリビューションのみに該当します。

  • [Standalone mode] (スタンドアロンモード): tHDFSConfigurationまたはaii1550477851510.htmlなど、クラスターで使用されているファイルシステムに対応する設定コンポーネントを使用します。

    ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

この接続は、ジョブごとに有効になります。

特定のSparkタイムアウト

ネットワークに問題が発生した場合、デフォルトでは、Sparkは最大45分待ってからジョブの送信試行を停止します。続いて、Sparkによりジョブの自動停止がトリガーされます。

この間隔は、以下のプロパティをtHDFSConfiguration[Hadoop properties] (Hadoopプロパティ)テーブルに追加することで短縮できます。

  • ipc.client.ping: false。この場合、サーバーが応答しなければPingしません。

  • ipc.client.connect.max.retries: 0。これは、接続の要求に応答が返ってきたもののリジェクトされた場合の再試行回数を示します。

  • yarn.resourcemanager.connect.retry-interval.ms: 任意の数字。これは、Sparkで試行終了までに、ResourceManagerサービスに接続を試みる回数を示します。