以前のHadooptut o リアル 、InputFormatの詳細な説明を提供しました。 このブログでは、HadoopOutputFormatについて説明します。
HadoopのOutputFormatとは何か、MapReduceOutputFormatのRecordWritterとは何かについて説明します。 MapReduceのOutputFormatのタイプについても説明します。
HadoopOutputFormatの概要
OutputFormat Map-Reduceジョブを実行するための出力仕様を確認してください。 RecordWriter実装を使用して出力を出力ファイルに書き込む方法について説明します。
OutputFormatを開始する前に、まずRecordWriterとは何か、MapReduceでのRecordWriterの動作は何かを学びましょう。
1。 HadoopMapReduceのRecordWriter
ご存知のように、レデューサー マッパーが必要です 入力としての中間出力。次に、それらに対してレデューサー関数を実行して、再びゼロ以上のキーと値のペアである出力を生成します。
したがって、MapReduceジョブ実行のRecordWriterは、これらの出力キーと値のペアをReducerフェーズから出力ファイルに書き込みます。
2。 Hadoop OutputFormat
上記から、RecordWriterがReducerから出力データを取得することは明らかです。次に、このデータを出力ファイルに書き込みます。 OutputFormatは、これらの出力キーと値のペアがRecordWriterによって出力ファイルに書き込まれる方法を決定します。
OutputFormat関数とInputFormat関数は似ています。 OutputFormatインスタンスは、ローカルディスクまたはHDFSでのファイルへの書き込みに使用されます。 出力仕様に基づいたMapReduceジョブの実行;
- Hadoop MapReduceジョブは、出力ディレクトリがまだ存在していないことを確認します。
- MapReduceジョブのOutputFormatは、ジョブの出力ファイルを書き込むために使用されるRecordWriter実装を提供します。次に、出力ファイルはファイルシステムに保存されます。
フレームワークはFileOutputFormat.setOutputPath()を使用します 出力ディレクトリを設定する方法。
MapReduceのOutputFormatのタイプ
OutputFormatには、次のようなさまざまなタイプがあります。
1。 TextOutputFormat
デフォルトのOutputFormatはTextOutputFormatです。テキストファイルの個々の行に(キー、値)のペアを書き込みます。そのキーと値はどのタイプでもかまいません。背後にある理由は、TextOutputFormatが toString()を呼び出すことによってそれらを文字列に変換するためです。 それらに。
キーと値のペアをタブ文字で区切ります。 MapReduce.output.textoutputformat.separatorを使用する プロパティを変更することもできます。
KeyValueTextOutputFormatは、これらの出力テキストファイルの読み取りにも使用されます。
2。 SequenceFileOutputFormat
このOutputFormatは、出力用にシーケンスファイルを書き込みます。 SequenceFileInputFormatは、MapReduceジョブ間の中間形式の使用でもあります。任意のデータ型をファイルにシリアル化します。
また、対応するSequenceFileInputFormatは、ファイルを同じタイプに逆シリアル化します。次のマッパーにデータを表示します 以前のレデューサーから放出されたのと同じ方法で。静的メソッドも圧縮を制御します。
3。 SequenceFileAsBinaryOutputFormat
これは、SequenceFileInputFormatの別のバリアントです。また、キーと値をバイナリ形式でシーケンスファイルに書き込みます。
4。 MapFileOutputFormat
これは、FileOutputFormatの別の形式です。また、出力をマップファイルとして書き込みます。フレームワークは、MapFileにキーを順番に追加します。したがって、レデューサーがソートされた順序でキーを発行するようにする必要があります。
5。 MultipleOutputs
この形式では、出力キーと値から名前が派生したファイルにデータを書き込むことができます。
6。 LazyOutputFormat
MapReduceジョブの実行では、FileOutputFormatは、空であっても出力ファイルを作成することがあります。 LazyOutputFormatはラッパーOutputFormatでもあります。
7。 DBOutputFormat
これは、リレーショナルデータベースとHBaseに書き込むためのOutputFormatです。この形式では、reduce出力もSQLテーブルに送信されます。キーと値のペアも受け入れます。この場合、キーのタイプはDBwritableを拡張します。
結論
したがって、必要に応じて異なるOutputFormatsが使用されます。このブログがお役に立てば幸いです。 Hadoop OutputFormatについて質問がある場合は、コメントボックスにコメントを残してください。喜んで解決させていただきます。