flume遇到的问题总结;spooldir与exec区别【GC overhead limit exceeded  ;Java heap space】(forty-three day)

问题一:

Exception in thread “PollableSourceRunner-SQLSource-sourceTest” java.lang.OutOfMemoryError: GC overhead limit exceeded 

同理:Java heap space

解决:

进入flume bin修改flume-ng文件: 

配置jvm参数

JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xmn1024m -XX:SurvivorRatio=4  -XX:+DisableExplicitGC -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"

红框的地方默认是20m,可以根据自己服务器内存大小设置,这是我自己配的。

问题二:

Transaction Capacity of Memory Channel cannot be higher than the capacity.(Transaction Capacity不能比capacity高)

修改下面的参数(自己看着改吧)

## event条数
ag1.channels.channel1.capacity = 5000
##flume事务控制所需要的缓存容量600000条event
ag1.channels.channel1.transactionCapacity = 600000

问题三:

bin/flume-ng agent -c conf/ -f tail-hdfs.properties -n agent1 -Dflume.root.logger=INFO,console

启动命令-n后面的名字要和配置文件中的一致

否则会显示找不到

 

用flume的exec方式去实时监控日志文件的话,那就意味着只能监控一个文件,那么如果我的日志文件是用tomcat生成的日志文件,而且是每天生成一个日志文件,日志文件不断追加日志内容。

如果是每天都切分日志的话就用spooldir

  • ExecSource:以运行Linux命令的方式,持续的输出最新的数据,如tail -F 文件名指令,在这种方式下,取的文件名必须是指定的。 ExecSource可以实现对日志的实时收集,但是存在Flume不运行或者指令执行出错时,将无法收集到日志数据,无法保证日志数据的完整性。
  • SpoolSource:监测配置的目录下新增的文件,并将文件中的数据读取出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值