如何配置 Secor(来自 pinterest)以按一天中的小时对文件进行分区?

How to configure Secor (from pinterest) to partition files by hour of day?

寻找有关如何配置 Secor 以输出按日期时间而不是 kafka 偏移量分区的更胖文件的一些见解。类似于 kafka 主题流的每小时备份。目前,我的 common.properties 文件包含这些扇区配置:

secor.generation=1
secor.consumer.threads=7
secor.messages.per.second=10000
secor.offsets.per.partition=10000000
secor.topic_partition.forget.seconds=600
secor.local.log.delete.age.hours=-1
    secor.file.reader.writer.factory=com.pinterest.secor.io.impl.SequenceFileReaderWriterFactory
secor.max.message.size.bytes=100000

此文件提到分区可以描述消息的日期:

LogFilePath.java:

(line 29) Log file path has the following form: prefix/topic/partition1/.../partitionN/generation_kafkaParition_firstMessageOffset

(line 34) "partition1, ..., partitionN is the list of partition names extracted from message content. * E.g., the partition may describe the message date such as dt=2014-01-01 [...]"

Secor's Readme File: JSON 日期解析器:从 JSON 消息中提取时间戳并根据日期对输出进行分组的解析器,类似于上面的 Thrift 解析器。要使用此解析器,请使用属性文件 secor.prod.partition.properties 启动 Secor 并设置 secor.message.parser.class=com.pinterest.secor.parser.JsonMessageParser。您可以通过设置 message.timestamp.name 属性.

来覆盖用于提取时间戳的字段