hive小檔案合併機制 Hive小檔案合併遷移

2021-10-18 19:04:48 字數 822 閱讀 2129

1 需求

2 小檔案合併

我們通過sparksql進行小檔案合併,首先開啟spark-shell申請足夠多的資源:

spark-shell --master yarn --driver-memory 20g --driver-cores 4 --executor-cores 6 --num-executors 18 -- executor-memory 18g

依次合併hive表各分割槽的小檔案,將幾十萬個小檔案合併為50個大檔案:

scp –r /data/data1/t_flowdata b:/data/data1/

hdfs dfs –put /data/data1/ /wa/hive/fms/t_flowdata/

我們將a集群hive庫里的表檔案匯入了b集群的hive庫。最後需要連線b集群hive庫,新增匯入的表分割槽元資料給對應表,以使可以通過sql查詢到b集群hive庫里的匯入分割槽資料。

beeline –u 「jdbc:hive2://node10:10000/;principal=hive/[email protected]

use fms;

alter table t_flowdata add partition(time_part=』 2017-03-20』);

alter table t_flowdata add partition(time_part=』 2017-03-21』);

至此,跨越兩個開啟kerberos認證的hadoop集群,遷移包含大量小檔案的hive庫資料的任務完成。

注意:小檔案合併步驟必不可少,兩個集群間大量小檔案的傳輸效能會異常的低下。而且還會給namenode增加很大的壓力。

hive優化之小檔案合併

檔案數目過多,會給hdfs帶來壓力,並且會影響處理效率,可以通過合併map和reduce的結果檔案來消除這樣的影響 set hive.merge.mapfiles true 在 map only 的任務結束時合併小檔案 set hive.merge.mapredfiles false true 時在...

hive小檔案優化 01

輸入小檔案優化 輸入檔案最大拆分大小,這裡設定為128m set mapred.max.split.size 128000000 128m set mapred.min.split.size.per.node 128000000 128m set mapred.min.split.size.per....

spark 匯入檔案到hive出現多小檔案的問題

環境 ambari 2.6.1 spark 2.1 python 3.6 oracle 11.2 sqoop 1.4 將sqoop採集到hdfs中的檔案匯入到hive資料庫,匯入成功後,發現hive資料庫中出現多個小檔案的問題,嚴重影響後期資料分析的載入速度。解決方法 sjtable spark.s...