HDFS コネクタ

Select

Hadoop 分散ファイルシステム (HDFS) 用 Anypoint コネクタは、Mule アプリケーションと HDFS 間の双方向ゲートウェイとして使用されます。

前提条件

このドキュメントは、読者が Mule に精通していることを前提としています。

HDFS コネクタを使用するには、以下が必要です。

  • Anypoint Studio バージョン 7.0 以上 - Anypoint Studio のインスタンス。開発で Anypoint Studio を使用しない場合。

  • 稼働している Hadoop 分散ファイルシステムのインスタンス。

互換性

HDFS Hadoop コネクタには、以下との互換性があります。

アプリケーション/サービス バージョン

Mule Runtime

4.0 以降

Apache Hadoop

2.8.1 以降

コネクタをインストールする

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. コネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってコネクタをインストールします。

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

コネクタのグローバル要素の設定

Mule アプリケーションで HDFS コネクタを使用するには、コネクタで使用可能なグローバル HDFS 要素を設定する必要があります。HDFS コネクタでは、以下のグローバル設定オプションが提供され、以下のログイン情報が必要です。

簡易認証設定

項目 説明

NameNode URI

接続先のファイルシステムの URI。

これは、FileSystem#FS_DEFAULT_NAME_KEY 設定のエントリとして HDFS クライアントに渡されます。configurationResources および configurationEntries の値で上書きできます。

Username (ユーザ名)

Hadoop が HDFS 内の権限用に使用するユーザ ID。

簡易認証を使用する場合、Hadoop では、ユーザを HADOOP_USER_NAME というシステムプロパティとして設定する必要があります。この項目を入力する場合、コネクタによりこの項目は自動的に設定されますが、ユーザが自分で設定することもできます。この変数が設定されていない場合、Hadoop は、現在ログインしている OS ユーザを使用します。

Configuration Resources (設定リソース)

HDFS クライアントが読み込む設定リソースファイルのリスト。ここでは、追加の設定ファイルを提供できます。例: core-site.xml。

Configuration Entries (設定エントリ)

HDFS クライアントが使用する設定エントリのマップ。ここでは、追加の設定エントリをキー/値のペアとして提供できます。

hdfs config

Kerberos 認証設定

項目 説明

NameNode URI

接続先のファイルシステムの URI。

これは、FileSystem#FS_DEFAULT_NAME_KEY 設定エントリとして HDFS クライアントに渡されます。configurationResources および configurationEntries の値で上書きできます。

Username (ユーザ名)

Kerberos プリンシパル。

これは、「hadoop.job.ugi」設定エントリとして HDFS クライアントに渡されます。configurationResources および configurationEntries の値で上書きできます。指定しない場合、現在ログインしているユーザが使用されます。

KeytabPath

ユーザ名に関連付けられた keytab ファイルへのパス。

KeytabPath を使用して、「認証サーバ」から TGT を取得します。 指定しない場合、ローカルの kerberos キャッシュ内でユーザ名に関連付けられた TGT が検索されます。

Configuration Resources (設定リソース)

HDFS クライアントが読み込む設定リソースファイルのリスト。ここでは、追加の設定ファイルを提供できます。例: core-site.xml。

Configuration Entries (設定エントリ)

HDFS クライアントが使用する設定エントリのマップ。ここでは、追加の設定エントリをキー/値のペアとして提供できます。

hdfs config with kerberos

コネクタの使用

このコネクタをインバウンドエンドポイントとして使用して、設定可能な速度 (間隔) でファイルの内容をポーリングしたり、アウトバウンドコネクタとして使用して、HDFS サーバへのデータを操作したりできます。

コネクタの名前空間とスキーマ

Studio でアプリケーションを設計するときに、コネクタをパレットから Anypoint Studio キャンバスにドラッグすると、XML コードにコネクタの名前空間とスキーマの場所が自動的に入力されます。

名前空間: http://www.mulesoft.org/schema/mule/hdfs
スキーマの場所: http://www.mulesoft.org/schema/mule/connector/current/mule-hdfs.xsd

Studio の XML エディタまたは他のテキストエディタで Mule アプリケーションを手動でコーディングする場合、[Configuration XML (設定 XML)] のヘッダーの <mule> タグ内で名前空間およびスキーマの場所を定義します。

 <mule xmlns:http="xmlns:hdfs="http://www.mulesoft.org/schema/mule/hdfs"
      	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
      	xmlns="http://www.mulesoft.org/schema/mule/core"
       xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
      	xmlns:spring="http://www.springframework.org/schema/beans"
      	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="

      http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
      http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
      http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
      http://www.mulesoft.org/schema/mule/hdfs http://www.mulesoft.org/schema/mule/hdfs/current/mule-hdfs.xsd">
</mule>

ユースケースの例

次の例は、コネクタを使用して HDFS にテキストファイルを作成する方法を示しています。

  1. Anypoint Studio で、[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] をクリックし、プロジェクトに名前を付けて、[OK] をクリックします。

  2. 検索項目に「http」と入力し、HTTP コネクタをキャンバスにドラッグして、[Connector Configuration (コネクタ設定)] の右にある緑色のプラス記号をクリックします。次の画面で [OK] をクリックし、デフォルト設定を受け入れます。エンドポイントの名前「/createFile」を設定します。

  3. 検索バーに「hdfs」と入力し、HDFS コネクタをキャンバスにドラッグします。

  4. パスへの [Write] 操作を選択します。[Path (パス)] を /test.txt (HDFS に作成するファイルのパス) に設定し、他のオプションをデフォルト値のままにします。

  5. フローは次のようになります。

  6. アプリケーションを実行します。お気に入りの HTTP クライアントから、ペイロードとして書き込むコンテンツを含む`locahost:8081/createFile` に対して、「Content-type:plain/text」を使用して POST 要求を実行します。 (例: curl -X POST -H "Content-Type:plain/text" -d "payload to write to file" localhost:8090/createFile)。

  7. Hadoop エクスプローラを使用して、/test.txt が作成され、対象のコンテンツが含まれていることを確認します。

上記のユースケースを含むデモが提供されました。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub