次のような定義のハイブテーブル(圧縮あり)があります
create table temp1 (col1 string, col2 int)
partitioned by (col3 string, col4 string)
row format delimited
fields terminated by ','
escaped by '\\'
lines terminated by '\n'
stored as sequencefile;
別のハイブテーブルからこのテーブルに単純な選択と挿入(実行中のリデューサーなし)を行うと、一意のパターンが表示されます。圧縮されたこのテーブルのデータは、非常に小さなサイズの多数のファイルに分割されます(テーブル1:時々1GBデータは 200 ~ 300 個のファイルに分割されるため、この新しいテーブルにクエリを実行すると非常に多くのマップが形成されるため、消費されるブロック数が増加しますが、16 ブロックのみにまたがる必要があります。ファイル サイズは 245 MB を超えません (表 2 )。ブロック サイズが 64 MB であるため、余分なブロックが作成されないため、これを 64 MB (または 64 MB の倍数または単一のファイル) に制限する設定はありますか。
表1
名前 | タイプ | サイズ | ブロックサイズ
000000_0 | ファイル | 30.22MB | 64MB
000001_0 | ファイル | 26.19MB | 64MB
000002_0 | ファイル | 25.19MB | 64MB
000003_0 | ファイル | 24.74MB | 64MB
000004_0 | ファイル | 24.54MB | 64MB
..........
000031_0 | ファイル | 0.9MB | 64MB
表 2
名前 | タイプ | サイズ | ブロックサイズ
000000_0 | ファイル | 245.02MB | 64MB
000001_0 | ファイル | 245.01MB | 64MB
000002_0 | ファイル | 244.53MB | 64MB
000003_0 | ファイル | 244.4MB | 64MB
000004_0 | ファイル | 198.21MB | 64MB