入力分割が tez エンジンでどのように計算されるかをよりよく理解したいと思います。
hive.input.format プロパティは、HiveInputFormat (デフォルト) またはCombineHiveInputFormat (サイズ << hdfs ブロック サイズの多数のファイルで一般的に受け入れられる) のいずれかに設定できることを認識しています。
データ ファイルのサイズが小さい (ブロック未満) から大きい (複数のブロックにまたがる) までさまざまであるため、 HiveInputFormatとCombineHiveInputFormatが分割サイズを計算する方法の違いについて、誰かが説明してくれることを期待していました。
テーブルをスキャンするために生成されるマッパー タスクの数を指定したいと考えています。MR エンジンの場合、これはmapred.min.split.sizeおよびmapred.max.split.sizeプロパティを設定することで制御できます。tez エンジンに同様の構成があるかどうかを知る必要があります。
また、プロパティtez.grouping.max-size、tez.grouping.min-size、およびtez.grouping.split-wavesは、それぞれ 1GB、16MB、および 1.7 の値に設定されています。ただし、作成された入力分割がこれらのプロパティに準拠していないことがわかりました。
テーブルごとにサイズが 3MB のファイルが 2 つありました。設定されたプロパティによると、1 つのマッパー タスクのみが生成されるはずでしたが、代わりに 2 つのマッパー タスクが生成されました。
入力分割グループ化を有効にするために設定する必要がある hive/tez の他のプロパティはありますか?
ご意見をいただければ幸いです。
ありがとう!