我有以下水槽配置
tier1.sources.source1.type = netcat
tier1.sources.source1.bind = 199.9.0.11
tier1.sources.source1.port = 9999
tier1.sources.source1.channels = channel1
tier1.channels.channel1.type = memory
tier1.sinks.sink1.type = hdfs
tier1.sinks.sink1.channel = channel1
tier1.sinks.sink1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
tier1.sinks.sink1.hdfs.filePrefix = events-
如何使用cURL 手动指定时间戳来测试?
我尝试了以下不同的变体:
curl -H 'timestamp : 1471620532' --data 'test' telnet://199.9.0.11:9999
我尝试的所有内容都会在Flume日志中出现错误:
Flume事件标题中的预期时间戳,但它为空
所有这些解决方案都让你设置hdfs.useLocalTimeStamp = true和/或使用拦截器。
答案 0 :(得分:1)
如果来源不一定是netcat,那么我建议使用HTTP Source。
在那里你可以指定任何标题,除了它可以与netcat源非常相似地使用。
对于示例配置,您可以尝试
a1.sources = r1
a1.channels = c1
a1.sources.r1.type = http
a1.sources.r1.port = 5140
a1.sources.r1.channels = c1
a1.channels = c1
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 10000
a1.channels.c1.byteCapacityBufferPercentage = 20
a1.channels.c1.byteCapacity = 800000
a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = logger
a1.sinks.k1.channel = c1