数据治理系列之小文件治理【面试吹牛草稿】

推荐阅读文章列表

大数据开发面经汇总【持续更新...】

我的大数据学习之路

大数据开发面试笔记V6.0

写在前面

在面试中你是否遇到过如下问题:

有没有遇到过小文件问题?

做项目的过程中有没有遇到一些难点?

你认为项目中比较有亮点的地方是什么?

不管面试官如何问,都可以这样去回答:

产生的原因

1)离线计算场景,一个reduce会对应一个小文件,如果reduce设置较大,就会对应大量的小文件

2)实时计算场景,流计算都是基于一个小窗口的数据来进行实时计算,显然会产生大量的小文件

3)数据源本身存在大量的小文件

带来的问题

1)存储问题:存储大量的小文件,会占用namenode大量的内存来存储元数据信息

2)计算问题:每个小文件需要一个maptask进行计算处理,浪费资源

解决方案

存量治理

采用Hadoop Archive归档的方式对小文件进行存储,这样能够将多个小文件打包为一个HAR文件

增量止血

  • 设置合适的reduce数量,官网建议:map数量和reduce数量是10比1
set mapred.reduce.tasks = 50;
  • 开启参数自动进行小文件合并
set hive.merge.mapredfiles = true;
  • 数据采集之前,将小文件进行合并后再进行入库
  • 在计算的时候,采用combineinputformat的切片方式,这样就可以将多个小文件放到一个切片中进行计算
#数据人的面试交流地##校招过来人的经验分享#
全部评论

相关推荐

不像现在的我,已经是虚伪的社会人了。
真烦好烦真烦:好有个性的一段话,导师没有让你修改吗
点赞 评论 收藏
分享
05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
评论
3
15
分享

创作者周榜

更多
牛客网
牛客企业服务