代码之家  ›  专栏  ›  技术社区  ›  Tom Lous

当通过HDFS连接器从Kafka写入时,是否有方法限制avro文件的大小?

  •  1
  • Tom Lous  · 技术社区  · 6 年前

    目前我们用的是燧石 FsStateBackend 检查点和设置 fileStateSizeThreshold 将写入hdfs上avro/json文件的数据大小限制为128MB。同时在检查点操作出现一定延迟后关闭文件。

    由于我们没有在新项目中使用高级Flink功能,因此我们希望使用Kafka流媒体 Kafka Connect HDFS Connector 直接向HDFS写入消息(不旋转Flink)

    但是,我无法找到是否有选项限制来自Kafka连接器的HDFS文件大小,除非可能 flush.size 这似乎限制了记录的数量。

    如果连接器上没有设置,那么人们如何以另一种方式管理HDFS上流式数据的文件大小?

    1 回复  |  直到 6 年前
        1
  •  2
  •   OneCricketeer    6 年前

    没有文件大小选项,只有基于时间的旋转和刷新大小。您可以设置一个大的刷新大小,这是您认为永远不会达到的,然后基于时间的旋转将尽最大努力将大文件分区为日期分区(我们已经能够在一个小时的目录内从connect获得每个主题分区的4GB输出文件)

    就个人而言,我建议使用其他工具,如hive、pig、distcp、flink/spark,这取决于可用的工具,而不是同时运行在oozie作业中,以将这些流文件“压缩”为更大的文件。

    my comment here


    在连接之前,有卡姆斯,现在是阿帕奇戈布林。在该项目中,它提供了压缩和后期事件处理+配置单元表创建的思想。


    这里的一般答案是,您有一个指定的“热着陆区”用于流式数据,然后定期将其存档或“冻结”(这将显示亚马逊冰川/雪球等技术名称) Snowplow )