当前位置: 首页 > news >正文

hive on spark 合并小文件

最近在做用户画像相关的数据开发,在hive中做行转列的过程中,每个标签即tag在写入hive表时,有大量的小文件生成,通过增加参数解决了小文件过多的问题,但是在完成特殊要求--(因后续需要同步ck,ck也有个为解决的问题,超过200M可能会丢失数据,故需要将hive在行转列的时候,合并的小文件在200M一下,方便后续ck数据同步)时,又产生了新的问题,通过hive合并小文件的参数,总是有些tag的数据生成的文件在200M以上;最终使用hive sql

 repartition的方式 ,重新打散数据最终实现了数据文件200M一下的目标;

1.hive on spark 中,开始以为是通过spark合并小文件的参数,结果spark的相关参数不熟悉,也不生效,还是一堆小文件产生

2.增加hive合并小文件的相关参数

SET hive.exec.dynamic.partition=true;            
set hive.stats.column.autogather=false;
set hive.exec.dynamic.partition.mode=nonstrict;
SET hive.merge.mapfiles=true;
SET hive.merge.sparkfiles=true;
SET hive.merge.size.per.task=180000000;
SET hive.merge.smallfiles.avgsize=180000000;
SET hive.exec.max.dynamic.partitions=3000;
SET hive.exec.max.dynamic.partitions.pernode=100;
set spark.executor.instances=8;
set spark.executor.memory=2g;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

特别需要指出的是,hive.merge.sparkfiles=true; 增加此参数,才会在hive on spark模式中进行小文件合并。

3.增加小文件后,解决个别tag数据扔不满足200M以下的情况

了解相关 hive sql repartition 的使用,在语句中增加 cluster by ,即重新打散数据

(distribute by 个别tag报错,原因待定)

关于hive on spark 合并小文件参考

关于较大规模hadoop集群的小文件问题-腾讯云开发者社区-腾讯云
【Hive任务优化】—— 小文件合并相关参数_hive.merge.sparkfiles-CSDN博客

关于 hive sql repartition 参考

Hive SORT BY vs ORDER BY vs DISTRIBUTE BY vs CLUSTER BY-腾讯云开发者社区-腾讯云

加cluster by之前

加cluster by之后,发现重新打散之后,块文件大小很均匀


http://www.mrgr.cn/news/19312.html

相关文章:

  • 24年最新ComfyUI 入门教程:comfyui基本功能详解!
  • 【多线程】二进制信号量与互斥锁的不同,以及优势在哪里?
  • Allegro shape操作
  • MySQL触发器:深入理解触发器的语法和示例
  • 【网安科普】网络安全未来趋势,揭秘技术突破与职业机遇,零基础入门到精通,收藏这一篇就够了
  • 贝宁共和国驻华大使馆聘任向凌云教授为新兴产业顾问
  • 道可云人工智能元宇宙每日资讯|《上海市推动直播经济高质量发展三年行动计划(2024-2026年)》发布
  • 【加密社】如何根据.dat文件恢复密钥
  • Linux服务器CPU和IO的监控利器-iostat简介
  • Rust多线程编程概述
  • MARK图像处理与计算机视觉基础,经典以及最近发展
  • [数据集][目标检测]鲜花检测数据集VOC+YOLO格式25215张106类别
  • 【ubuntu使用笔记】vscode配置中文环境
  • EvoSuite使用总结
  • 太阳能光伏异常红外图像数据集
  • 实训day42(9.3)
  • .Net Core 笔试1
  • PAT (Advanced Level) Practice——1003,1004
  • Ubuntu解压7z压缩包方法
  • 工业建模中,使用贝塞尔曲线多还是nurbs曲线多