flume 优化

flume file channel

通过配置dataDirs指向多个路径,每个路径对应不同的硬盘,增大Flume吞吐量

官方原话:Comma separated list of directories for storing log files. Using multiple directories on separate disks can improve file channel peformance

note:checkpointDirbackupCheckpointDir也尽量配置在不同硬盘对应的目录中,保证checkpointDir坏掉后,可以快速使用backupCheckpointDir恢复数据

file channel 底层原理简单示意图

在这里插入图片描述

flume hdfs sink

(1)HDFS存入大量小文件,有什么影响?

元数据层面:每个小文件都有一份元数据,其中包括文件路径,文件名,所有者,所属组,权限,创建时间等,这些信息都保存在Namenode内存中。所以小文件过多,会占用Namenode服务器大量内存,影响Namenode性能和使用寿命

计算层面:默认情况下MR会对每个小文件启用一个Map任务计算,非常影响计算性能。同时也影响磁盘寻址时间

(2)怎么去解决

官方提供的这三个参数配置在一定程度上可以减少小文件的产生,具体设置,需要根据应用场景

rollInterval: 文件创建超xxx秒时会滚动生成新文件
rollSize:文件在达到xxxM时会滚动生成新文件
rollCount:event个数达到多少时会滚动生产一个新文件event个数达到多少时会滚动生产一个新文件(通常设置为0,因为每个event大小不一样)

flume 内存优化

如果抛以下异常,可以尝试调试flume的内存

ERROR hdfs.HDFSEventSink: process failed
java.lang.OutOfMemoryError: GC overhead limit exceeded
  1. 去flume/conf/flume-env.sh文件中修改如下配置
export JAVA_OPTS="-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote"

Xms:启动时所需内存
-Xms表示JVM Heap(堆内存)最小尺寸,初始分配

Xmx:运行时最大内存
-Xmx 表示JVM Heap(堆内存)最大允许的尺寸,按需分配。如果不设置一致,容易在初始化时,由于内存不够,频繁触发fullgc

Xmx与Xms最好设置一致,减少内存抖动带来的性能影响,如果设置不一致容易导致频繁fullgc

  1. 同步该文件到其他节点
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值