现在我们用的是flink FsStateBackend
检查点设置 fileStateSizeThreshold
将写入hdfs上avro/json文件的数据大小限制为128mb。也可以在检查点操作延迟一定时间后关闭文件。
因为我们在一个新项目中没有使用高级flink特性,所以我们希望使用kafka流媒体 Kafka Connect HDFS Connector
将消息直接写入hdfs(而不旋转flink)
但是,我找不到是否有选项限制来自kafka连接器的hdfs文件的文件大小,除了可能 flush.size
这似乎限制了记录的数量。
如果连接器上没有设置,人们如何以另一种方式管理来自hdfs上的流数据的文件大小?
1条答案
按热度按时间cnwbcb6i1#
没有文件大小选项,只有基于时间的旋转和刷新大小。您可以设置一个大的刷新大小,这是您从未想过会达到的,然后基于时间的轮换将尽最大努力将大文件划分为日期分区(我们已经能够在connect的一个小时目录内获得每个主题分区4gb的输出文件)
就我个人而言,我建议额外的工具,如hive、pig、distcp、flink/spark,这取决于可用的工具,而不是一次运行在oozie作业中,将这些流文件“压缩”为更大的文件。
请看我的评论
在连接之前,有一个加缪,现在是Apache戈布林。在该项目中,它提供了压缩和后期事件处理+配置单元表创建的思想
这里的一般答案是,你有一个指定的“热着陆区”用于流式数据,然后你定期对其进行存档或“冻结”(这会带来类似亚马逊冰川/雪球和雪犁这样的技术名称)