[解決済み] ハイブがバケットにデータを挿入する際に作成した小さなファイルをマージする方法は?
2022-02-14 20:26:29
質問内容
私は、通話データレコード(CDR)を含むハイブテーブルを持っています。このテーブルは、電話番号でパーティショニングされ、call_dateでバケット化されています。現在、ハイブにデータを挿入すると、バックデイトのcall_dateがバケットに小さなファイルを作成し、ネームノードメタデータが増加し、パフォーマンスが低下しています。 これらの小さなファイルを1つに統合する方法はありますか?
解決方法は?
Hiveを使用してテーブルに挿入する際のファイルサイズを制御する方法の1つとして、以下のパラメータを設定することが挙げられます。
set hive.merge.tezfiles=true;
set hive.merge.mapfiles=true;
set hive.merge.mapredfiles=true;
set hive.merge.size.per.task=128000000;
set hive.merge.smallfiles.avgsize=128000000;
これはM/RとTezエンジンの両方で動作し、作成されるすべてのファイルのサイズが128MB以下であることを保証します(このサイズ数はユースケースに応じて変更可能です)。詳しくはこちらをご覧ください。 https://community.cloudera.com/t5/Community-Articles/ORC-Creation-Best-Practices/ta-p/248963 ).
テーブルのファイルをマージする最も簡単な方法は、実行時に上記のハイブコマンドを実行した状態で、テーブルを作り直すことです。
CREATE TABLE new_table LIKE old_table;
INSERT INTO new_table select * from old_table;
あなたの場合、ORCテーブルの場合、作成後にファイルを連結することができます。
ALTER TABLE table_name [PARTITION (partition_key = 'partition_value')] CONCATENATE;
関連
-
[解決済み】なぜHiveのFetchタスクはMapのみのタスクより速く動作するのですか?
-
[解決済み] hadoop.tmp.dirはどうすればいいのでしょうか?
-
[解決済み] hive.tez.container.size と tez.task.resource.memory.mb の違いについて
-
[解決済み] Apache Hive 小数点以下2桁に四捨五入する方法は?
-
[解決済み] HbaseのcheckAndPutとcheckAndMutateの違いは何ですか?
-
[解決済み] コマンドプロンプトからHiveとHadoopのバージョンを知るには?
-
[解決済み] Pig:FLATTENキーワード
-
[解決済み] curl で --negotiate を使用する場合、keytab ファイルは必要ですか?
-
[解決済み] Facebookのデータ分析ツール「HiPal」とは、どのようなものなのか?
-
[解決済み] HiveにStringのsplit関数はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜHiveのFetchタスクはMapのみのタスクより速く動作するのですか?
-
[解決済み] Hadoop-Hiveからテーブルを削除/トランケートする方法は?
-
[解決済み] 単一ファイルをコピーする際にhadoop discpの問題が発生する
-
[解決済み] Hive - 現在使用している実行エンジンを知る方法
-
[解決済み] HDFSのHiveプロキシユーザーの最適なソリューションは何ですか?
-
[解決済み] Hive - Hiveサービスのクラスパスを印刷する方法
-
[解決済み] 最初のhadoopプロジェクトエラー。"入力パスが存在しません"
-
[解決済み] Facebookのデータ分析ツール「HiPal」とは、どのようなものなのか?
-
[解決済み] Hiveで日付の差を計算する方法
-
[解決済み] HiveにStringのsplit関数はありますか?