Talend-hadoop-distributed-file-system

提供:Dev Guides
移動先:案内検索

Talend-Hadoop分散ファイルシステム

この章では、TalendがHadoop分散ファイルシステムとどのように機能するかについて詳しく説明します。

設定と前提条件

HDFSでTalendに進む前に、この目的のために満たすべき設定と前提条件について学習する必要があります。

ここでは、仮想ボックスでClouderaクイックスタート5.10 VMを実行しています。 このVMではホストオンリーネットワークを使用する必要があります。

ホストオンリーネットワークIP:192.168.56.101

前提条件

また、Cloudera Managerで同じホストを実行する必要があります。

Cloudera Manager

Windowsシステムで、c:\ Windows \ System32 \ Drivers \ etc \ hostsに移動し、次のようにメモ帳を使用してこのファイルを編集します。

Windowsシステム

同様に、clouderaクイックスタートVMで、次のように/etc/hostsファイルを編集します。

sudo gedit/etc/hosts

ホスト

Hadoop接続のセットアップ

リポジトリパネルで、メタデータに移動します。 Hadoopクラスターを右クリックして、新しいクラスターを作成します。 このHadoopクラスター接続の名前、目的、および説明を入力します。

Nextをクリックしてください。

Hadoop接続

clouderaとしてディストリビューションを選択し、使用しているバージョンを選択します。 設定の取得オプションを選択し、「次へ」をクリックします。

Hadoop設定

以下に示すように、マネージャーの資格情報(URI、ポート、ユーザー名、パスワード)を入力し、[接続]をクリックします。 詳細が正しい場合、検出されたクラスターの下にCloudera QuickStartが表示されます。

マネージャー資格情報

[取得]をクリックします。 これにより、HDFS、YARN、HBASE、HIVEのすべての接続と構成が取得されます。

[すべて]を選択し、[完了]をクリックします。

クリックフェッチ

すべての接続パラメーターが自動入力されることに注意してください。 ユーザー名にclouderaを記載し、[完了]をクリックします。

接続パラメーター

これで、Hadoopクラスターに正常に接続されました。

Hadoopクラスター

HDFSへの接続

このジョブでは、HDFSに存在するすべてのディレクトリとファイルをリストします。

まず、ジョブを作成してからHDFSコンポーネントを追加します。 Job Designを右クリックして、新しいジョブhadoopjobを作成します。

次に、パレットから2つのコンポーネント、tHDFSConnectionとtHDFSListを追加します。 tHDFSConnectionを右クリックし、「OnSubJobOk」トリガーを使用してこれら2つのコンポーネントを接続します。

次に、両方のtalend hdfsコンポーネントを構成します。

Connecting Hdfs

tHDFSConnectionで、プロパティタイプとしてリポジトリを選択し、前に作成したHadoop clouderaクラスターを選択します。 このコンポーネントに必要なすべての必要な詳細が自動入力されます。

プロパティタイプ

tHDFSListで[既存の接続を使用する]を選択し、コンポーネントリストで構成したtHD​​FSConnectionを選択します。

[HDFSディレクトリ内のHDFSのホームパス]オプションを指定し、右側の参照ボタンをクリックします。

参照ボタン

上記の構成を使用して接続を適切に確立すると、次のようなウィンドウが表示されます。 HDFSホームに存在するすべてのディレクトリとファイルがリストされます。

Hdfs Browse

これを確認するには、clouderaでHDFSを確認します。

Hdfsの確認

HDFSからのファイルの読み取り

このセクションでは、TalendでHDFSからファイルを読み取る方法を理解しましょう。 この目的のために新しいジョブを作成できますが、ここでは既存のジョブを使用しています。

パレットからデザイナーウィンドウに3つのコンポーネント(tHDFSConnection、tHDFSInput、およびtLogRow)をドラッグアンドドロップします。

tHDFSConnectionを右クリックし、「OnSubJobOk」トリガーを使用してtHDFSInputコンポーネントを接続します。

tHDFSInputを右クリックして、メインリンクをtLogRowにドラッグします。

ファイルの読み取り

tHDFSConnectionの構成は以前と同様であることに注意してください。 tHDFSInputで「既存の接続を使用」を選択し、コンポーネントリストからtHDFSConnectionを選択します。

[ファイル名]で、読み取りたいファイルのHDFSパスを指定します。 ここでは単純なテキストファイルを読み込んでいるので、ファイルタイプはテキストファイルです。 同様に、入力に応じて、以下で説明するように行セパレーター、フィールドセパレーター、ヘッダーの詳細を入力します。 最後に、[スキーマの編集]ボタンをクリックします。

スキーマの編集ボタン

ファイルにはプレーンテキストが含まれているため、String型の列を1つだけ追加しています。 次に、[OK]をクリックします。

注意-入力に異なるタイプの複数の列がある場合、それに応じてスキーマをここに記述する必要があります。

複数列

tLogRowコンポーネントで、[スキーマの編集で列を同期]をクリックします。

出力を印刷するモードを選択します。

モードの選択

最後に、「実行」をクリックしてジョブを実行します。

HDFSファイルの読み取りに成功すると、次の出力を確認できます。

成功した読書

HDFSへのファイルの書き込み

TalendでHDFSからファイルを書き込む方法を見てみましょう。 パレットからデザイナーウィンドウに3つのコンポーネント(tHDFSConnection、tFileInputDelimited、およびtHDFSOutput)をドラッグアンドドロップします。

tHDFSConnectionを右クリックし、「OnSubJobOk」トリガーを使用してtFileInputDelimitedコンポーネントを接続します。

tFileInputDelimitedを右クリックして、メインリンクをtHDFSOutputにドラッグします。

メインリンク

tHDFSConnectionの構成は以前と同様であることに注意してください。

次に、tFileInputDelimitedで、[ファイル名/ストリーム]オプションに入力ファイルのパスを指定します。 ここでは、csvファイルを入力として使用しているため、フィールド区切り文字は「、」です。

入力ファイルに応じて、ヘッダー、フッター、制限を選択します。 1行には列名が含まれ、最初の3行のみをHDFSに書き込むため、制限は3であるため、ヘッダーは1であることに注意してください。

次に、[スキーマの編集]をクリックします。

ヘッダーを選択

次に、入力ファイルに従って、スキーマを定義します。 入力ファイルには、次のように3つの列があります。

入力ファイル

tHDFSOutputコンポーネントで、列の同期をクリックします。 次に、[既存の接続を使用する]で[tHDFSConnection]を選択します。 また、[ファイル名]で、ファイルを書き込むHDFSパスを指定します。

ファイルタイプはテキストファイル、アクションは「作成」、行区切りは「\ n」、フィールド区切りは「;」になります。

行セパレーター

最後に、「実行」をクリックしてジョブを実行します。 ジョブが正常に実行されたら、ファイルがHDFSにあるかどうかを確認します。

正常に実行されました

ジョブで言及した出力パスを使用して、次のhdfsコマンドを実行します。

hdfs dfs -cat/input/talendwrite

HDFSでの書き込みに成功すると、次の出力が表示されます。

書き込み成功