0

巨大なTIFF画像(60,000x60,000〜600MB)がいくつかあります。Hadoopを使用して、画像ごとにタイルのピラミッド(deepzoom形式)を作成し、HDFSに保存したいと思います。理想的には、各ノードが画像の一部のみを処理していることを実現したいと思います。

それを達成するための最良の方法は何ですか?小さなファイルをHDFSに保存するのは大きなオーバーヘッドになりますか?

4

2 に答える 2

2

本当にhadoopが必要ですか?あなたの画像はそれほど大きくありません。私の 6 年前のデスクトップは、4 分以内に大きな画像のディープズームを作成できます。

$ tiffinfo huge.tif
TIFF Directory at offset 0x12d095e4 (315659748)
  Image Width: 91460 Image Length: 51866
  Tile Width: 512 Tile Length: 512
  Resolution: 10, 10 pixels/cm
  Bits/Sample: 8
  Compression Scheme: JPEG
...
$ time vips dzsave huge.tif x
real  3m40.841s
user  4m57.587s
sys   0m50.375s
于 2013-03-13T11:57:01.897 に答える
0

HDFS に小さなファイルを保存すると、大きなオーバーヘッドになりますか?

Cloudera のこの記事を確認してください。HDFS フェデレーションを使用すると、多数のファイルの問題が少し緩和されます。

http://www.cloudera.com/blog/2009/02/the-small-files-problem/

それを達成するための最良の方法は何ですか?

まず、画像ファイルの一部に Deep Zoom フォーマットを作成するための API が適用できるかどうかを確認します。完全なファイルを一度に処理する必要がある場合、Hadoop が提供する利点はあまりありません。HDFS はデフォルトでファイルを 64 MB の分割に分割し、各分割はマッパーによって並行して処理できます。

Hadoop を初めて使用する場合は、基本的な単語カウントの例が Hadoop でどのように機能するかを確認し、要件に合わせて同様のことを試みてください。

于 2012-07-09T13:47:13.130 に答える