Talend-map-reduce

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

Talend-マップリデュース

前の章で、ビッグデータでTalendがどのように機能するかを見てきました。 この章では、map ReduceをTalendで使用する方法を理解しましょう。

Talend MapReduceジョブの作成

TalendでMapReduceジョブを実行する方法を学びましょう。 ここでは、MapReduceの単語カウントの例を実行します。

この目的のために、[ジョブデザイン]を右クリックして、新しいジョブMapreduceJobを作成します。 ジョブの詳細に言及して、[完了]をクリックします。

Map Reduce Job

MapReduceジョブへのコンポーネントの追加

コンポーネントをMapReduceジョブに追加するには、Talendの5つのコンポーネント、tHDFSInput、tNormalize、tAggregateRow、tMap、tOutputをパレットからデザイナーウィンドウにドラッグアンドドロップします。 tHDFSInputを右クリックして、tNormalizeへのメインリンクを作成します。

tNormalizeを右クリックして、tAggregateRowへのメインリンクを作成します。 次に、tAggregateRowを右クリックして、tMapへのメインリンクを作成します。 次に、tMapを右クリックして、tHDFSOutputへのメインリンクを作成します。

コンポーネントマップリデュースの追加

コンポーネントと変換の構成

tHDFSInputで、ディストリビューションclouderaとそのバージョンを選択します。 Namenode URIは「hdfs://quickstart.cloudera:8020」であり、ユーザー名は「cloudera」であることに注意してください。 ファイル名オプションで、MapReduceジョブへの入力ファイルのパスを指定します。 この入力ファイルがHDFSに存在することを確認してください。

次に、入力ファイルに応じて、ファイルタイプ、行区切り文字、ファイル区切り文字、ヘッダーを選択します。

変換

[スキーマの編集]をクリックし、フィールド「行」を文字列タイプとして追加します。

文字列タイプ

tNomalizeでは、正規化する列は行になり、アイテムセパレータは空白→““になります。 次に、[スキーマの編集]をクリックします。 以下に示すように、tNormalizeには行列があり、tAggregateRowにはwordとwordcountの2つの列があります。

Normalize Aggregate Row

tAggregateRowで、グループ化オプションに出力列としてwordを配置します。 操作では、wordcountを出力列として、functionをcountとして、入力列の位置を行として入力します。

ワード数

tMapコンポーネントをダブルクリックしてマップエディターに入り、入力を必要な出力にマップします。 この例では、wordはwordにマップされ、wordcountはwordcountにマップされます。 式の列で、[…]をクリックして式ビルダーを入力します。

ここで、カテゴリリストとUPCASE関数からStringHandlingを選択します。 式を「StringHandling.UPCASE(row3.word)」に編集して、「OK」をクリックします。 以下に示すように、wordcountに対応する式列にrow3.wordcountを保持します。

文字列処理

tHDFSOutputで、プロパティタイプからリポジトリとして作成したHadoopクラスターに接続します。 フィールドが自動入力されることを確認します。 [ファイル名]で、出力を保存する出力パスを指定します。 以下に示すように、アクション、行セパレーター、およびフィールドセパレーターを保持します。

フィールドセパレーター

MapReduceジョブの実行

構成が正常に完了したら、[実行]をクリックしてMapReduceジョブを実行します。

設定成功

HDFSパスに移動して、出力を確認します。 すべての単語は単語カウントとともに大文字になります。

HDFSパス