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

Hive小文件合并

作者:振鹭

一、参数配置:

在Map输入的时候, 把小文件合并。

-- 每个Map最大输入大小,决定合并后的文件数
set mapred.max.split.size=256000000;
-- 一个节点上split的至少的大小 ,决定了多个data node上的文件是否需要合并
set mapred.min.split.size.per.node=100000000;
-- 一个交换机下split的至少的大小,决定了多个交换机上的文件是否需要合并
set mapred.min.split.size.per.rack=100000000;
-- 执行Map前进行小文件合并
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

在Reduce输出的时候, 把小文件合并。

-- 在map-only job后合并文件,默认true
set hive.merge.mapfiles = true;
-- 在map-reduce job后合并文件,默认false
set hive.merge.mapredfiles = true;
-- 合并后每个文件的大小,默认256000000
set hive.merge.size.per.task = 256000000;
-- 平均文件大小,是决定是否执行合并操作的阈值,默认16000000
set hive.merge.smallfiles.avgsize = 100000000;

Hadoop的归档文件格式。

set  hive.archive.enabled=  true ;
set  hive.archive.har.parentdir.settable=  true ;
set  har.partfile.size=1099511627776;
ALTER   TABLE  srcpart ARCHIVE PARTITION(ds=  '2008-04-08' , hr=  '12'  );
ALTER   TABLE  srcpart UNARCHIVE PARTITION(ds=  '2008-04-08' , hr=  '12'  );

二、sql合并:

concatenate

--对于非分区表
alter table tablename concatenate;
--对于分区表
alter table tablename partition(dt=20201224) concatenate;

insert overwrite

--select 的字段需要自己拼起来,select * 的话,由于带有dt字段,无法写入新分区。
insert overwrite table tableName partition(dt=2022031100)
select
column1,column2
from
tableName
where dt=2022031100insert overwrite select *
--用这个方法就能去掉分区表的日期字段
set hive.support.quoted.identifiers=none;
insert overwrite test1 select (字段)?+.+ from test;

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • DDoS 究竟在攻击什么?
  • 每日任务:TCP/IP模型和OSI模型的区别
  • VsCode | 让空文件夹始终展开不折叠
  • 算法与算法分析
  • gitlab更新了ssh-key之后再登录还是要求输入密码, 报 Permission denied, please try again.
  • win11 安装 Gradle
  • ROM修改进阶教程------修改rom 开机自动安装指定apk 自启脚本完整步骤解析
  • [Day 36] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 通过iframe碎片实现web局部打印
  • web前端 React 框架面试200题(五)
  • OMOST 作画能力的硬核解析[C#]
  • 当 Nginx 出现请求的缓存数据损坏,如何处理?
  • Hadoop-HDFS
  • Java | Leetcode Java题解之第279题完全平方数
  • 在spyder中使用arcgis pro的包
  • [Vue CLI 3] 配置解析之 css.extract
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 11111111
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • DOM的那些事
  • Electron入门介绍
  • JavaScript 基本功--面试宝典
  • java中的hashCode
  • JS题目及答案整理
  • mockjs让前端开发独立于后端
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Wamp集成环境 添加PHP的新版本
  • 初识MongoDB分片
  • 机器学习学习笔记一
  • 离散点最小(凸)包围边界查找
  • 两列自适应布局方案整理
  • 无服务器化是企业 IT 架构的未来吗?
  • 移动端解决方案学习记录
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 选择阿里云数据库HBase版十大理由
  • #HarmonyOS:基础语法
  • #微信小程序:微信小程序常见的配置传旨
  • (09)Hive——CTE 公共表达式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (Python第六天)文件处理
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (三)elasticsearch 源码之启动流程分析
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)软件性能测试
  • (一)RocketMQ初步认识
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)人的集合论——移山之道
  • . Flume面试题
  • .form文件_一篇文章学会文件上传
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net 中Partitioner static与dynamic的性能对比