通过hdfs连接器从kafka写入时,有没有办法限制avro文件的大小?

sr4lhrrt  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(317)

现在我们用的是flink FsStateBackend 检查点设置 fileStateSizeThreshold 将写入hdfs上avro/json文件的数据大小限制为128mb。也可以在检查点操作延迟一定时间后关闭文件。
因为我们在一个新项目中没有使用高级flink特性,所以我们希望使用kafka流媒体 Kafka Connect HDFS Connector 将消息直接写入hdfs(而不旋转flink)
但是,我找不到是否有选项限制来自kafka连接器的hdfs文件的文件大小,除了可能 flush.size 这似乎限制了记录的数量。
如果连接器上没有设置,人们如何以另一种方式管理来自hdfs上的流数据的文件大小?

cnwbcb6i

cnwbcb6i1#

没有文件大小选项,只有基于时间的旋转和刷新大小。您可以设置一个大的刷新大小,这是您从未想过会达到的,然后基于时间的轮换将尽最大努力将大文件划分为日期分区(我们已经能够在connect的一个小时目录内获得每个主题分区4gb的输出文件)
就我个人而言,我建议额外的工具,如hive、pig、distcp、flink/spark,这取决于可用的工具,而不是一次运行在oozie作业中,将这些流文件“压缩”为更大的文件。
请看我的评论
在连接之前,有一个加缪,现在是Apache戈布林。在该项目中,它提供了压缩和后期事件处理+配置单元表创建的思想
这里的一般答案是,你有一个指定的“热着陆区”用于流式数据,然后你定期对其进行存档或“冻结”(这会带来类似亚马逊冰川/雪球和雪犁这样的技术名称)

相关问题