次のクエリを実行しようとしていますが、2番目のジョブに1つのレデューサーしか使用されていないため、データの読み込みに時間がかかります。
INSERT INTO TABLE ddb_table SELECT *FROMdata_dumpランクで並べ替えdescLIMIT1000000;
上記のクエリに対して2つのジョブが作成されます。最初のジョブは、80個のマッパーと約22個のレデューサーを使用しているため、かなり高速に実行されます。セカンドジョブマッパーは高速ですが、レデューサーが1つしかないため、非常に低速です。
set mapred.reduce.tasks = 35を使用してレデューサー数を増やしようとしましたが、興味深いことに、最初のジョブにのみ適用され、2番目のジョブには適用されませんでした。
なぜ単一のレデューサーが使用されるのですか?ソートバイ句が原因ですか?最大レデューサーを設定するにはどうすればよいですか?
それを行うためのより良い方法はありますか?