标签:des java 使用 io ar 文件 数据 问题 sp
最近在使用flume进行文件读取时遇到一个问题:接收到的信息未按照预想的数据格式输出。
文件格式:
xxx,xxx,xxx,xxx,xxx,xxx\r xxx,xxx,xxx,xxx,xxx,xxx\r xxx,xxx,xxx,xxx,xxx,xxx\r xxx,xxx,xxx,xxx,xxx,xxx\r xxx,xxx,xxx,xxx,xxx,xxx\r xxx,xxx,xxx,xxx,xxx,xxx\r xxx,xxx,xxx,xxx,xxx,xxx\r问题现象:
flume source使用spooldir读取文件夹下数据文件,获取到的数据入到kafka队列中,consume队列内容时发现处理的数据长度于记录数与原始文件有很大出入,通过分析flume日志后发现每次入队列的数据长度都是一致的,数据的截断位置不固定。
通过查阅官方文档,找到了问题原因。flume spooldir默认配置使用LINE进行数据转换。在LINE中有如下一段说明:
Property Name Default Description deserializer.maxLineLength 2048 Maximum number of characters to include in a single event. If a line exceeds this length, it is truncated, and the remaining characters on the line will appear in a subsequent event.flume每个event中处理的最大信息长度默认配置为2048,超出的信息会进行截断处理。
问题修改方法,在flume的配置文件里追加解析长度配置。
flume配置方式:
#在flume agent的数据源中按实际处理的文件内容配置信息长度 producer.sources.s.deserializer.maxLineLength = 90
标签:des java 使用 io ar 文件 数据 问题 sp
原文地址:http://my.oschina.net/u/262605/blog/307332