文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Log4J Appender
将 Log4j 事件附加到 flume 代理的 avro 源。使用此 appender 的客户端必须在类路径中包含 flume-ng-sdk(例如,flume-ng-sdk-1.9.0.jar)。必需属性在 bold 中。
属性名称 | 默认 | 说明 |
---|---|---|
Hostname | - | 使用 avro 源运行远程 Flume 代理程序的主机名。 |
Port | - | 远程 Flume 代理程序的 avro 源正在侦听的端口。 |
UnsafeMode | false | 如果为 true,则 appender 在发送事件失败时不会抛出异常。 |
AvroReflectionEnabled | false | 使用 Avro Reflection 序列化 Log4j 事件。 (当用户记录字符串时不要使用) |
AvroSchemaUrl | - | 可从中检索 Avro 架构的 URL。 |
示例 log4j.properties 文件:
#...
log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.flume.Hostname = example.com
log4j.appender.flume.Port = 41414
log4j.appender.flume.UnsafeMode = true
# configure a class's logger to output to the flume appender
log4j.logger.org.example.MyClass = DEBUG,flume
#...
默认情况下,通过调用 toString()
将每个事件转换为字符串
,或者使用 Log4j 布局,如果指定的话。
如果事件是 org.apache.avro.generic.GenericRecord
的实例
, org.apache.avro.specific.SpecificRecord
,或者如果 property AvroReflectionEnabled
设置为 true
然后使用 Avro 序列化序列化事件。
使用 Avro 架构序列化每个事件效率很低,因此最好提供一个架构 URL,下游接收器(通常是 HDFS 接收器)可以从该架构 URL 检索架构。如果 AvroSchemaUrl
如果未指定,则架构将作为 Flume 标头包含在内。
示例 log4j.properties 文件配置为使用 Avro 序列化:
#...
log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.flume.Hostname = example.com
log4j.appender.flume.Port = 41414
log4j.appender.flume.AvroReflectionEnabled = true
log4j.appender.flume.AvroSchemaUrl = hdfs://namenode/path/to/schema.avsc
# configure a class's logger to output to the flume appender
log4j.logger.org.example.MyClass = DEBUG,flume
#...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论