千家信息网

hive中merge小文件的示例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了hive中merge小文件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。当Hive输入由很多个小文件组成,
千家信息网最后更新 2026年11月01日hive中merge小文件的示例分析

这篇文章主要介绍了hive中merge小文件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

当Hive输入由很多个小文件组成,由于每个小文件都会启动一个map任务,如果文件过小,以至于map任务启动和初始化的时间大于逻辑处理的时间,会造成资源浪费,甚至OOM。
为此,当我们启动一个任务,发现输入数据量小但任务数量多时,需要注意在Map前端进行输入合并
当然,在我们向一个表写数据时,也需要注意输出文件大小

1. Map输入合并小文件
对应参数:
set mapred.max.split.size=256000000; #每个Map最大输入大小
set mapred.min.split.size.per.node=100000000; #一个节点上split的至少的大小
set mapred.min.split.size.per.rack=100000000; #一个交换机下split的至少的大小
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; #执行Map前进行小文件合并

在开启了org.apache.hadoop.hive.ql.io.CombineHiveInputFormat后,一个data node节点上多个小文件会进行合并,合并文件数由mapred.max.split.size限制的大小决定。
mapred.min.split.size.per.node决定了多个data node上的文件是否需要合并~
mapred.min.split.size.per.rack决定了多个交换机上的文件是否需要合并~



2.输出合并
set hive.merge.mapfiles = true #在Map-only的任务结束时合并小文件
set hive.merge.mapredfiles = true #在Map-Reduce的任务结束时合并小文件
set hive.merge.size.per.task = 256*1000*1000 #合并文件的大小
set hive.merge.smallfiles.avgsize=16000000 #当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge

感谢你能够认真阅读完这篇文章,希望小编分享的"hive中merge小文件的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

文件 任务 大小 输入 篇文章 多个 输出 示例 分析 数据 时间 节点 最大 为此 交换机 件数 价值 兴趣 前端 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重生之互联网科技帝国 美国互联网保险保险科技 上海互联网科技有限公司 西安互联网科技 互联网科技公司怎么样 互联网金融和金融科技 厦门千工互联网科技有限公司 阿大互联网科技有限公司 电子科技大学互联网创业大赛 中国互联网十大科技股排名 互联网科技人工智能实验室 民营互联网公司国防科技 为客找房互联网科技公司怎么样 互联网金融科技公司的优势 城市宝互联网科技有限公司 互联网安防科技感 互联网科技平台产品运营 科技信息时代互联网发展 马化腾互联网科技教学 互联网科技自媒体灵感 为想互联网科技怎么样 极限挑战互联网科技 易通互联网络科技有限公司 伴你行互联网科技有限公司 隆华科技工业互联网 米聚互联网科技南京有限公司排面 爱医互联网络科技 众安科技工业互联网合作 每天都有哪些好的互联网科技 三亚科技创新互联网基地
0