开发者社区 问答 正文

flink1.12.2 StreamingFileSink 问题

flink用的1.12.2,要sink到hdfs,选用了StreamingFileSink,导入依赖的时候maven仓库并没有1.12.2的flink-connector-filesystem的jar包,我应该选用哪个版本合适*来自志愿者整理的flink

展开
收起
雪哥哥 2021-12-05 12:04:33 801 分享 版权
阿里云 AI 助理回答

针对您使用Flink 1.12.2版本并希望sink数据到HDFS,但发现Maven仓库中没有明确对应1.12.2版本的flink-connector-filesystem的问题,您可以采取以下策略来选择合适的依赖版本:

  1. 兼容性选择:通常,Flink的连接器(如flink-connector-filesystem)在不同小版本之间的兼容性较好。因此,即使找不到精确的1.12.2版本,也可以尝试使用相近的小版本号,比如1.12.x系列中的其他版本。确保所选版本与您的Flink核心库版本兼容。

  2. 查看官方文档或Maven仓库:访问Apache Flink官方网站或直接搜索Maven中央仓库,查找flink-connector-filesystem最新的稳定版本,并确认该版本是否声明了与Flink 1.12.2的兼容性。

  3. Maven坐标调整:一旦确定了合适的版本号,您可以在Maven的pom.xml文件中添加相应的依赖项,示例如下(请替换{compatible.version}为实际找到的兼容版本号):

    <dependency>
     <groupId>org.apache.flink</groupId>
     <artifactId>flink-connector-filesystem_${scala.binary.version}</artifactId>
     <version>{compatible.version}</version>
    </dependency>
    

    注意这里${scala.binary.version}应根据您的Flink安装所使用的Scala版本进行替换,通常是2.112.12

  4. 考虑使用更稳定的长期支持(LTS)版本:如果遇到频繁的版本兼容问题,考虑升级到Flink的长期支持版本,这些版本往往有更长的支持周期和更好的生态兼容性。

  5. 编译源码:作为最后的手段,如果您确实需要特定版本且无法直接获取,可以考虑从Flink的GitHub仓库下载源代码,然后按照项目构建指南自行编译所需模块生成对应的JAR包。但这通常较为繁琐,且不推荐作为常规解决方案。

综上所述,建议首先尝试寻找与Flink 1.12.2最接近且声明兼容的flink-connector-filesystem版本,并通过上述步骤配置依赖。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答