非常に広いエリアの数値標高モデル データを生成したいと考えています。少なくとも 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
.....................
したがって、ワーカー ノードよりも多くのマップ タスクを取得する方法を考えています。入力は非常に小さいファイルです。
概念を誤解したかどうかはわかりませんが、プログラムが1つのノードで実行されている場合、クラスターを使用する必要はなく、ここではデータを生成するマップフェーズのみが使用され、ゼロリデューサーを使用しています.
実際、私はこれらのデータを別の MR プログラムで分析していますが、現在外部プログラムでデータを生成していますが、効率的ではありません。したがって、これらのデータを MR プログラムで生成する必要があります。
クラスターに 5 つのノードがあり、入力ファイルのサイズが非常に小さいため、少なくとも 5 つのマップ タスクを生成できません。MR 並列処理を使用してこれらのデータを生成する方法は?
1 ソリューション
map() で大きな領域をいくつかのサブ領域に分割し、それらをレデューサーに割り当てます。