1

HDFS (ブロック サイズ 64MB) に非常に大きなイメージ (~200MB) があります。次のことを知りたいです。

  1. mapReduce ジョブで画像を読み取る方法は?

  2. 多くのトピックで WholeInputFormat が提案されています。他の代替手段とその方法はありますか?

  3. WholeInputFormat を使用する場合、ブロックの並列処理は行われますか? いいえ。

4

3 に答える 3

0

WholeFileInputFormat または SequenceFileInputFormat または何かカスタムを使用して画像ファイルを読み取ることができますが、実際の問題 (私の見解では) は、読み取ったファイルから何かを引き出すことです。OK..ファイルを読みましたが、次は??マッパー内のオブジェクトを検出するために画像をどのように処理しますか? 不可能とは言いませんが、かなりの労力を必要とします。

IMHO、 HIPIのようなものを使用する方が良いでしょう。HIPI は、MapReduce フレームワーク上で画像処理タスクを実行するための API を提供します。

編集 :

本当に自分のやり方でやりたい場合は、カスタムの InputFormat を記述する必要があります。\n画像はテキストファイルとは違うので分割作成のような区切り文字は使えません。考えられる回避策の 1 つは、特定のバイト数に基づいて分割を作成することです。たとえば、イメージ ファイルが 200MB の場合、100MB の分割を作成する InputFormat を記述できます (または、ジョブ構成でパラメーターとして指定したものは何でも)。私はずっと前にいくつかのバイナリファイルを扱っているときにそのようなシナリオに直面したことがあり、このプロジェクトは私を大いに助けてくれました.

HTH

于 2013-07-02T22:22:51.017 に答える