设为首页 加入收藏

TOP

Flume的SpoolDirSource优化,自定义Deserializer
2019-01-19 14:10:21 】 浏览:73
Tags:Flume SpoolDirSource 优化 定义 Deserializer

SpoolDirSource采集数据默认是按行采集的,在官网的配置中有LINE和AVRO两种配置。AVRO尚未了解

在采集单行数据量少的日志文件时,使用Line采集慢

查看源码后发现实现原理非常简单

直接copy了LineDeserializer的代码将主要逻辑改为如下

private String readLine() throws IOException {
StringBuilder sb = new StringBuilder();
int c;
int readChars = 0;
while ((c = in.readChar()) != -1) {
readChars++;


sb.append((char)c);

if (readChars >= maxCharLength) {
break;
}
}

if (readChars > 0) {
return sb.toString();
} else {
return null;
}
}

设置每次读取的最大长度maxCharLength=10*1024,这样我的event每次都是10k,而不是按行读取。这样采集速度得到了较大提升。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇nginx ---->flume ----->ka.. 下一篇flume配置及问题处理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目