# Apache Spark BatchのtHDFSConfigurationプロパティ

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

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

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

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Property type] (プロパティタイプ) | [Built-in] (組み込み)と[Repository] (リポジトリー)のいずれかです。<br><br>[Built-In] (組み込み): 一元的に保存されるプロパティデータはありません。<br><br>[Repository] (リポジトリー): プロパティが保存されているリポジトリーファイルを選択します。 |
| [Distribution] (ディストリビューション) | 使用するクラスターはドロップダウンリストから選択します。リストのオプションは使用するコンポーネントによって異なります。これらのオプションの中でも、以下のオプションを使用するには特定の設定が必要です。<br><br><ul> <li> <p>この<span>[Distribution] (ディストリビューション)</span>ドロップダウンリストに<span>[Microsoft HD Insight]</span>オプションが表示されている場合は、Microsoft HD Insightクラスターを利用できます。この場合、表示されているエリアでクラスターのHD Insightクラスター、Windows Azure Storageサービスへの接続を設定する必要があります。これらのパラメーターの詳細は、<a href="https://help.qlik.com/talend/r/ja-JP/7.3/studio-user-guide/configuring-connection-manually" target="_blank">手動で接続を設定</a>をご覧ください。 </p> </li> <li> <p><span>Amazon EMR</span>を選択している場合は、<a href="https://help.qlik.com/talend/r/en-US/8.0/amazon-emr-getting-started" target="_blank">Amazon EMR - Getting Started</a>で詳細をご覧ください。</p> </li> <li> <p><span>[Custom] (カスタム)</span>オプションを使用すれば、リストにあるディストリビューションのものとは異なるクラスター、つまり、<span> <span>Talend</span> </span>で正式にサポートされていないクラスターに接続できます。</p> </li> </ul><br><br><ol> <li> <p><span>[Import from existing version] (既存のバージョンからインポート)</span>をオンにすると、正式にサポートされているディストリビューションをベースとしてインポートしてから、ベースディストリビューションで提供されていない他の必要なjarファイルを追加できます。</p> </li> <li> <p><span>[Import from zip] (zipからインポート)</span>をオンにすると、使用するカスタムディストリビューションの設定zipファイルをインポートできます。zipファイルには、Hadoopの各種エレメントのライブラリーおよびこれらのライブラリーのインデックスファイルが含まれている必要があります。 </p> <p><span><span>Talend</span></span>はカスタムバージョンを公式にサポートしていません。<span><span>Talend</span></span>とそのコミュニティでは、<span>Talend Studio</span>からカスタムバージョンに接続するための方法を紹介していますが、Hadoopのディストリビューションとバージョンの種類は幅広いため、選択したバージョンの設定がスムーズに機能するかどうかは保証できません。そのような接続のセットアップは、Hadoopについてどんな問題でもご自身で対処できる十分な経験をお持ちの場合のみ行ってください。</p> <div><span>情報メモ</span><span>注:</span> <p>カスタムディストリビューションとこのコンポーネント間で作成する接続に関わるjarファイルがインポートされるように、このダイアログボックスのアクティブなチェックボックスをオフにしないでください。</p> </div> <p>カスタムディストリビューションの接続方法、および接続の共有方法のステップ例は、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/hortonworks" target="_blank">Hortonworks</a>をご覧ください。</p> </li> </ol> |
| Hadoop version (Hadoopのバージョン) | 使用しているディストリビューションのHBaseバージョンを選択します。 |
| [Use Kerberos authentication] (Kerberos認証を使用) | Kerberosセキュリティを実行しているHadoopクラスターにアクセスする場合は、このチェックボックスをオンにし、表示されるフィールドにネームノードとしてKerberosのプリンシパル名を入力します。これにより、ユーザー名を使って、Kerberosに保存された認証情報に対して認証を実行できます。<br><br>このチェックボックスは、接続しているHadoopのディストリビューションによっては、表示されないことがあります。 |
| [Use a keytab to authenticate] (Keytabを認証に使用) | [Use a keytab to authenticate] (Keytabを認証に使用)チェックボックスをオンにして、所定のkeytabファイルを使ってKerberos対応のシステムにログインします。keytabファイルには、Kerberosのプリンシパルと暗号化されたキーのペアが含まれています。使用するプリンシパルを[Principal] (プリンシパル)フィールドに入力し、keytabファイルへのアクセスパスを[Keytab] フィールドに入力します。このキータブファイルは、ジョブが実際に実行されているマシン(Talend JobServerなど)に保存する必要があります。<br><br>keytabが有効なジョブは、プリンシパルに任命されたユーザーでなくても実行できますが、使用するkeytabファイルの読み取り権限が必要です。たとえば*user1*というユーザー名でジョブを実行し、使用するプリンシパルが*guest*の場合、*user1*に使用するキータブファイルの読み取り権限があることをご確認ください。 |
| [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] (ユーザー名)フィールドに、ディストリビューションにログインするためのユーザー名を入力します。このフィールドを空白のままにすると、Talend Studioをホストするマシンのユーザー名が使用されます。 |
| Group (グループ) | HDFSインスタンスが起動された認証ユーザーを含めたメンバーシップを入力します。このフィールドは、使用しているHadoopのディストリビューションによっては、表示されないこともあります。 |
| [Use datanode hostname] (データノードホスト名を使用) | [Use datanode hostname] (データノードホスト名を使用)チェックボックスをオンにして、これらのホスト名によるデータノードへのアクセスをジョブに許可します。これは、実際には*dfs.client.use.datanode.hostname*プロパティを*true*に設定しています。S3Nファイルシステムに接続する場合、このチェックボックスをオンにする必要があります。 |
| [Hadoop properties] (Hadoopプロパティ) | *Talend Studio* では、Hadoopディストリビューションの処理を実行するエンジンに、デフォルト設定を使用しています。特定の場合にカスタム設定を使用する必要がある場合は、カスタマイズするプロパティをこのテーブルで設定します。設定後、カスタマイズしたプロパティによってこれらのデフォルトのプロパティが実行時に上書きされます。<br><br><ul> <li> <p><span>[Repository] (リポジトリー)</span>に一元的に保管されたメタデータを使用している場合、テーブルにはそのメタデータで定義されたプロパティが自動的に継承されます。<span>[Property type] (プロパティタイプ)</span>を<span>[Repository] (リポジトリー)</span>から<span>[Built-in] (組み込み)</span>に変更しないと、テーブルは編集できなくなります。</p> </li> </ul><br><br>Hadoopやその関連システム(HDFS、Hiveなど)で必要なプロパティの詳細は、使用しているHadoopディストリビューションのドキュメンテーションか、[ApacheのHadoopドキュメンテーション](http://hadoop.apache.org/docs)をご覧になって、必要なバージョンのドキュメンテーションを選択してください。以下のリンクでは、一部のプロパティについて実例を紹介しています。<br><br><ul> <li> <p>通常、HDFS関連のプロパティは、 <a href="http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml" target="_blank">http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml</a>など、ディストリビューションの<em>hdfs-default.xml</em>ファイル内にあります。</p> </li> <li> <p>Apacheは、<a href="https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties" target="_blank">Hive関連のプロパティ</a>をリスト表示するページも提供しています。</p> </li> </ul> |
| [Setup HDFS encryption configurations] (HDFS暗号化設定) | HDFSの透過的暗号化をクラスターで有効にしている場合は、[Setup HDFS encryption configurations] (HDFS暗号化設定)チェックボックスをオンにし、[HDFS encryption key provider] (HDFS暗号化キープロバイダー)フィールドが表示されたら、KMSプロキシのロケーションを入力します。<br><br>HDFSの透過的暗号化とそのKMSプロキシの詳細は、[Transparent Encryption in HDFS](https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/TransparentEncryption.html)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは、他のコンポーネントに接続せずに使用されます。<br><br>設定がランタイムにジョブ全体で使われるように、tHDFSConfigurationと共に、実行するファイルシステム関連のサブジョブを同じジョブにドロップする必要があります。<br><br>このコンポーネントは、所属するSpark Batchコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。<br><br>特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend Data Integrationジョブだけを扱います。 |
| 前提条件 | *Talend Studio* との操作を確実に行うには、Hadoopディストリビューションを適切にインストールする必要があります。以下のリストに、MapR関連の情報などを示します。<br><br><ul> <li> <p>MapRクライアントは必ず<span>Talend Studio</span>のあるマシンにインストールして、そのマシンのPATH変数にMapRクライアントライブラリーを追加します。MapRのドキュメンテーションによると、各OSバージョンに対応するMapRクライアントのライブラリーは、<em>MAPR_INSTALL\ hadoop\hadoop-VERSION\lib\native</em>にあります。たとえば、Windows版のライブラリーは、<em>\lib\native\MapRClient.dll</em>にあるMapRクライアントのjarファイルにあります。</p> <p>指定のライブラリーを追加しないと、<span>no MapRClient in java.library.path</span>というエラーが発生する可能性があります。</p> </li> <li> <p>たとえば、<span>[Window] (ウィンドウ)</span>メニューの<span>[Preferences] (環境設定)</span>ダイアログボックスにある<span>[Run/Debug] (実行/デバッグ)</span>ビューの<span>[Job Run VM arguments] (ジョブ実行VMの引数)</span>エリアで、<span>-Djava.library.path</span>引数を設定します。この引数により、そのMapRクライアントのネイティブライブラリーへのパスが<span>Talend Studio</span>に渡されるので、サブスクリプションベースのユーザーは<span>データビューアー</span>をフルに活用して、MapRに保存されたデータを<span>Talend Studio</span>でローカルに表示できます。</p> </li> </ul><br><br>Hadoopディストリビューションのインストール方法の詳細は、使用しているHadoopディストリビューションに対応するマニュアルを参照してください。 |
| [Spark Connection] (Spark接続) | [Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。<br><br><ul> <li> <span>Yarnモード</span>(YarnクライアントまたはYarnクラスター): <p>オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration">tHDFSConfiguration</a>を使用します。</p> <p>実際、このコンポーネントは従来のオンプレミスのHadoopディストリビューションにのみ関連します。</p> </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>この接続は、ジョブごとに有効になります。 |
| 特定のSparkタイムアウト | ネットワークに問題が発生した場合、デフォルトでは、Sparkは最大45分待ってからジョブの送信試行を停止します。続いて、Sparkによりジョブの自動停止がトリガーされます。<br><br>この間隔は、以下のプロパティをtHDFSConfigurationの[Hadoop properties] (Hadoopのプロパティ)テーブルに追加することで短縮できます。<br><br><ul> <li> <p> <kbd>ipc.client.ping</kbd>: <kbd>false</kbd>。この場合、サーバーが応答しなければPingしません。</p> </li> <li> <p> <kbd>ipc.client.connect.max.retries</kbd>: <kbd>0</kbd>。これは、接続の要求にレスポンスが返ってきたもののリジェクトされた場合の再試行回数を示します。</p> </li> <li> <p> <kbd>yarn.resourcemanager.connect.retry-interval.ms</kbd>: 任意の数値。これは、Sparkで試行終了までに、ResourceManagerサービスに接続を試みる回数を示します。</p> </li> </ul> |