この他の質問のコンテキストでhere
hive.exec.reducers.max ディレクティブを使用すると、本当に困惑しました。
私の観点からは、ハイブはある種のロジックで機能すると思いました。たとえば、目的のクエリに N # 個のブロックがあるため、N 個のマップが必要です。NI からは、R = N / 2 から R = 1 までの範囲のリデューサー R の適切な範囲が必要になります。合計で 70 個のリデューサーしかないクラスターで作業していたことを除いて、これは問題ありませんでした。公平なジョブスケジューラを使用しても、これによりバックログが発生し、他のジョブがハングアップしました。そのため、hive.exec.reducers.max を見つけて 60 などに設定するまで、さまざまな実験を試みました。
その結果、248 分かかったハイブ ジョブが 155 分で終了し、結果に変化はありませんでした。私が気になっているのは、ハイブのデフォルトを N にして、クラスターのリデューサー容量よりも大きくならないようにして、リデューサーのセットを減らして数テラバイトのデータをロールオーバーできることを確認してから、ハイブが正しいと思うことです。常に試したほうがよいですかこのカウントを微調整しますか?