当前位置: 首页 > 知识库问答 >
问题:

水槽在一行2048个字符后添加换行符

宿镜
2023-03-14

我有一个在 Ubuntu 工作站上运行的 Flume 1.5 代理,它从各种设备收集日志并将日志重新格式化为具有很长行的逗号分隔文件。在收集和重新格式化日志后,它们被放入假脱机目录中,Flume 代理将日志文件发送到运行 Flume 代理的 Hadoop 服务器,以接受日志文件并将它们放在 HDFS 目录中。

除了当Flume将文件发送到HDFS目录时,每行每2048个字符后有换行符之外,一切都正常。

下面是我的水槽配置文件。是否有设置可以告诉水槽不要插入换行符?

#On Ubuntu Workstation
#list sources, sinks and channels in the agent
agent.sources = axon_source
agent.channels = memorychannel
agent.sinks = AvroOut

#define flow
agent.sources.axon_source.channels = memorychannel
agent.sinks.AvroOut.channel = memorychannel
agent.channels.memorychannel.type = memory
agent.channels.memorychannel.capacity = 100000

#source
agent.sources.axon_source.type = spooldir
agent.sources.axon_source.spoolDir = /home/ubuntu/workspace/logdump
agent.sources.axon_source.decodeErrorPolicy = ignore

#avro out
agent.sinks.AvroOut.type = avro
agent.sinks.AvroOut.hostname = 172.31.12.221
agent.sinks.AvroOut.port = 41415
agent.sinks.AvroOut.maxIoWorkers = 2


------------------------------------------------------------


#On Hadoop Server
agent.sources = AvroIn
agent.sources.AvroIn.type = avro
agent.sources.AvroIn.bind = 172.31.131.1
agent.sources.AvroIn.port = 41415
agent.sources.AvroIn.channels = MemChan1

agent.channels = MemChan1
agent.channels.MemChan1.type = memory
agent.channels.MemChan1.capacity = 100000

agent.sinks = HDFSSink
agent.sinks.HDFSSink.type = hdfs
agent.sinks.HDFSSink.channel = MemChan1
agent.sinks.HDFSSink.hdfs.path = /Logs/%Y%m/
agent.sinks.HDFSSink.hdfs.filePrefix = axoncapture
agent.sinks.HDFSSink.hdfs.fileSuffix = .log
agent.sinks.HDFSSink.hdfs.minBlockReplicas = 1
agent.sinks.HDFSSink.hdfs.rollCount = 0
agent.sinks.HDFSSink.hdfs.rollSize = 314572800
agent.sinks.HDFSSink.hdfs.writeFormat = Text
agent.sinks.HDFSSink.hdfs.fileType = DataStream
agent.sinks.HDFSSink.hdfs.useLocalTimeStamp = True

共有1个答案

阎咏思
2023-03-14

找到了我问题的答案:

LINE反序列化器的默认maxLineL的长度是2048:http://archive.cloudera.com/cdh5/cdh/5/flume-ng/FlumeUserGuide.html#line

我将该行添加到我的flume.conf文件中并修复了问题:agent.sources.axon_source.deserializer.maxLineL的长度=60000

 类似资料:
  • 我有一个文本区,当你添加内容时,它会自动添加项目符号,问题是当一个新的行被添加时,它应该添加单独的ullet点。问题是它的内容完全附加了 下面是我如何添加内容 应该是这样的 下面是片段 null null

  • 我正在尝试将日志从单台机器上的不同目录收集到本地文件系统文件或 HDFS。 我已经注册了 2 个来源 r1、r2。两个源都指向单通道C1。有一个接收器连接到通道。K1 请找到下面的配置文件: 但是当我使用代理 a1 启动 Flume 时,只有一个源 (r2) 正在启动。水槽代理启动日志: 谢谢

  • 我有一个对象, 现在我想在中添加一个换行符。我该怎么做? 不工作。所以,我在考虑使用Unicode编写一个新行。这会有帮助吗?如果有,怎么加一个?

  • 我需要帮助。 我已经下载了Apache Flume并安装在Hadoop之外,只是想尝试通过控制台进行netcat日志记录。我使用1.6.0版本。 这是我的confhttps://gist.github.com/ans-4175/297e2b4fc0a67d826b4b 这是我是如何开始的 但是仅在打印这些输出后就卡住了 对于简单的启动和安装有什么建议吗? 谢谢

  • 这是我使用Thymeleaf模板的代码 正在生成: 我希望每个复选框都在一行中。在普通的纯HTML中,我会使用<代码>

  • 我正在生成一个包含一些注释、单元格和表格的PDF文件。。。我在JAVA中使用PDFbox 我想在我的字符串中添加一个换行符,它被称为“esc注释”,它包含一个注释数组。 我试过"\n","\r","System.get属性("line.separator")"都没用。 这是我的代码: 我想为每个来自getCloseComment()的评论添加一个换行符