2012-07-09 77 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