我想为一个非常大的区域生成数字高程模型数据。至少 18 x 10^12 个样本。要生成这些数据,我只需要起始位置、域大小和分辨率。
例如
输入 :
ORIGIN_LAT=33.663901;ORIGIN_LON=-117.894687;ORIGIN_DEPTH =0.000000
SIZE_DOMAIN_LAT=4000.000000;SIZE_DOMAIN_LON=4000.000000;SIZE_DOMAIN_DEPTH =1600.000000
输出 :
-117.894687, 33.663901, 0.000000
-117.894687 , 33.663901 , -200.000000
-117.894687 , 33.663901 , -300.000000
-117.894687 , 33.663901 , -400.000000
-117.894687 , 33.663901 , -500.000000
-117.894687 , 33.663901 , -600.000000
-117.894687 , 33.663901 , -700.000000
-117.894687 , 33.663901 , -800.000000
-117.894687 , 33.663901 , -900.000000
-117.894687 , 33.663901 , -1000.000000
.....................
所以我想知道如何获得比工作节点更多的地图任务。因为输入是非常小的文件。
我不确定我是否误解了这些概念,但是如果程序在一个节点上运行,则没有使用集群,这里只有映射阶段生成数据,我使用的是零减速器。
实际上,我正在使用另一个 MR 程序分析这些数据,该程序目前使用外部程序生成数据,但效率不高。所以我需要用 MR 程序生成这些数据。
我在集群中有 5 个节点,输入文件的大小非常小,可以生成至少 5 个地图任务。如何使用 MR 并行性来生成这些数据?
1 解决方案
我在 map() 中将大区域划分为几个子区域,并将它们分配给减速器。