2012-07-09 96 views
0

我有一對巨大的TIFF圖像(60,000x60,000〜600MB)。使用Hadoop我想爲每個圖像創建一個金字塔(深度縮放格式)並將它們存儲在HDFS上。 理想情況下,我想實現每個節點只處理圖像的一部分。hadoop上的並行圖像處理

實現它的最好方法是什麼? 在HDFS上存儲小文件會是一個很大的開銷嗎?

回答

0

在HDFS上存儲小文件會是一個很大的開銷嗎?

從Cloudera檢查此article。使用HDFS federation時,大量文件的問題會稍微緩解。

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

什麼是實現這一目標的最佳途徑?

首先檢查用於創建深度縮放格式的API是否可應用於圖像文件的一部分。如果整個文件需要一次處理,那麼Hadoop提供的功能就沒有多大優勢。默認情況下,HDFS將文件分割成64 MB分割,並且每個分割可以由一個映射器並行處理。

如果您是Hadoop的新手,請參閱基本word count example在Hadoop中的工作原理,並嘗試按照您的要求做類似的工作。

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