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

一百七十三、Flume——Flume写入HDFS后的诸多小文件问题

一、目的

在用Flume采集Kafka中的数据写入HDFS后,发现写入HDFS的不是每天一个文件,而是一个文件夹,里面有很多小文件,浪费namenode的宝贵资源

二、Flume的配置文件优化(参考了其他博文

(一)方法一、大多数人推荐经过测试有效的方法

在Flume任务的配置文件设置

a1.sinks.k1.hdfs.rollSize = 0  
a1.sinks.k1.hdfs.rollCount = 0  

而不是

a1.sinks.k1.hdfs.round=true

a1.sinks.k1.hdfs.roundValue=10

a1.sinks.k1.hdfs.roundUnit=minute

将rollSize和rollCount设置为0,表示不根据临时文件大小和event数量来滚动文件(滚动文件即指将HDFS上生成的以.tmp结尾的临时文件转换为实际存储文件

还有说可以调大rollSize的参数,比如调至102400,表示100KB。滚动文件的单位是byte。

(二)方法二、有人推荐经过测试后似乎有效的方法

还是在Flume任务的配置文件设置

a1.sinks.k1.hdfs.minBlockReplicas=1

我测试过,本来每5分钟就会有104.54 KB和1.63 KB的两个文件,因为有两个数据源。

在配置文件里加入这个a1.sinks.k1.hdfs.minBlockReplicas=1后,那个小文件1.63 KB就消失了。

所以这个方法还是有效的,但是对我来说就有点问题,就把它给去掉了,还是用方法一

Flume虽然安装简单,但是使用起来却非常不简单,使用过程中需要优化的配置服务很多,需要进一步研究总结!

http://www.lryc.cn/news/166307.html

相关文章:

  • Android.mk中C++使用
  • K8S:Pod概念、分类及相关的策略
  • 【Java杂谈】#1 【MCA JAVA后端架构师】
  • Vue3路由
  • Android Studio的笔记--aidl实现和调用
  • 大模型从入门到应用——LangChain:代理(Agents)-[工具包(Toolkit)]
  • VR全景算不算好的创业项目?有哪些特性?
  • Spring系列文章:Spring集成Log4j2⽇志框架、整合JUnit
  • flink的网络缓冲区
  • 产品经理学习笔记
  • 【深入理解Linux锁机制】七、互斥体
  • UGUI画布加载优化
  • SEC的下一步目标是什么?过时的证券法与加密货币行业,哪个会被先淘汰?
  • Kafka3.0.0版本——消费者(独立消费者消费某一个主题数据案例__订阅主题)
  • 笔记本多拓展出一个屏幕
  • Redis 高可用及持久化
  • Java高级: 反射
  • 【计算机网络】什么是WebSocket?
  • Apinto 网关: Go语言实现 HTTP 转 gRPC
  • 【管理运筹学】第 7 章 | 图与网络分析(4,最大流问题)
  • linux学习总结
  • 【API 管理】什么是 API 管理,为什么它很重要?
  • 基于人体呼出气体的电子鼻系统的设计与实现
  • OPC发展历程
  • 第69步 时间序列建模实战:ARIMA建模(R)
  • 【多线程】CountDownLatch
  • 使用 docker buildx 构建跨平台镜像 (QEMU/buildx/build)
  • 算法|Day49 动态规划17
  • Linux nohup命令
  • SQL Server 跨库/服务器查询