Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Secor(从pinterest)配置为按小时划分文件?_Java_Amazon Web Services_Amazon S3 - Fatal编程技术网

Java 如何将Secor(从pinterest)配置为按小时划分文件?

Java 如何将Secor(从pinterest)配置为按小时划分文件?,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,希望了解如何配置Secor以输出按日期时间而不是卡夫卡偏移量分区的更胖文件。类似于卡夫卡主题流的每小时备份。当前,我的common.properties文件包含以下secor配置: secor.generation=1 secor.consumer.threads=7 secor.messages.per.second=10000 secor.offsets.per.partition=10000000 secor.topic_partition.forget.seconds=600 secor

希望了解如何配置Secor以输出按日期时间而不是卡夫卡偏移量分区的更胖文件。类似于卡夫卡主题流的每小时备份。当前,我的common.properties文件包含以下secor配置:

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
该文件提到分区可以描述消息的日期:

:

(第29行)日志文件路径的形式如下:prefix/topic/partition1/../partitionN/generation\u kafkaParition\u firstMessageOffset

(第34行)“partition1,…,partitionN是提取的分区名称列表 来自消息内容。*例如,分区可以描述 信息日期,如dt=2014-01-01[…]”

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

我注意到在中有一个max file age属性。还必须将
message.timestamp.name=dateTime
设置为与kafka消息中的timestamp键匹配。还要注意的是,JsonMessageParser希望timestamp字段位于顶层(非嵌套)且采用Unix TS格式。如果消息格式不同,则需要编写自定义消息解析器类。只有在消息的JSON中为所有消息添加时间戳时,这才有效吗?我希望在datetime Secor到达消息时进行分区,可能与OP中的问题略有不同或相同。是的,从源代码看,时间戳信息是从JSON内容解析的。在您的情况下,您可能会考虑创建一个扩展JsonMessageParser的自定义类,在运行时创建该时间戳信息并将其传递给JSONMeXaGePARSER方法。谢谢