5

私は hadoop に非常に慣れていないので、ばかげた質問を許してください。

私は次の知識を持っています。Hadoop の最適な使用例は大きなファイルであるため、mapreduce タスクの実行中の効率が向上します。

上記を念頭に置いて、私は Flume NG について多少混乱しています。ログファイルを追跡していて、ログが毎秒生成されると仮定すると、ログが新しい行を取得すると、Flume 経由で hdfs に転送されます。

a) これは、flume がログ ファイルに記録されているすべての行に新しいファイルを作成することを意味しますか、それとも既存の hdfs ファイルに追加しますか??

b)そもそもhdfsで追加が許可されていますか??

c) b に対する答えが true の場合 ?? つまり、コンテンツは常に追加されます。mapreduce アプリケーションをいつ、どのように実行すればよいですか?

上記の質問は非常にばかげているように聞こえるかもしれませんが、同じ回答をいただければ幸いです。

PS: 私はまだ Flume NG や Hadoop をセットアップしていません。記事を読んで理解を深め、それが私の会社にどのように付加価値をもたらすかを理解しているだけです。

4

1 に答える 1

5

Flume は、HDFS シンクを使用して HDFS に書き込みます。Flume が起動してイベントの受信を開始すると、シンクは新しいファイルを開き、そこにイベントを書き込みます。ある時点で、以前に開いたファイルを閉じる必要があります。それまでは、書き込まれている現在のブロックのデータは他のリーダーから見えません。

ドキュメントで説明されているように、Flume HDFS シンクにはいくつかのファイル クローズ戦略があります。

  • N 秒ごと (rollIntervalオプションで指定)
  • N バイトの書き込み後 (rollSizeオプション)
  • N 個の受信イベントを書き込んだ後 (rollCountオプション)
  • N 秒間非アクティブになった後 (idleTimeoutオプション)

だから、あなたの質問に:

a) Flume は、現在開いているファイルが閉じられる (そして新しいファイルが開かれる) まで、現在開いているファイルにイベントを書き込みます。

b) HDFS では追加が許可されていますが、Flume では使用されていません。ファイルが閉じられると、Flume はファイルにデータを追加しません。

c) 現在開いているファイルを mapreduce アプリケーションから非表示にするにはinUsePrefix、オプションを使用します。名前が で始まるすべてのファイルは.、MR ジョブからは見えません。

于 2013-07-19T11:36:49.280 に答える