Hi,
大家好, 降级avro遇到的问题 在1.12官方文档里提到avro目前使用1.10,但是可以按需降级到1.8.2 https://ci.apache.org/projects/flink/flink-docs-release-1.12/release-notes/flink-1.12.html#upgrade-to-avro-version-1100-from-182-flink-18192 我这边在尝试降级时,遇到了下面的问题 1. 如果直接依赖1.8.2 会导致 flink-avro里的 AvroSchemaConverter#nullableSchema 报错 java.lang.NoSuchMethodError: org.apache.avro.Schema.isNullable()Z at org.apache.flink.formats.avro.typeutils.AvroSchemaConverter.nullableSchema(AvroSchemaConverter.java:448) 我对比了一下,Avro 1.8.2和1.10.0,发现在1.8.2版本里就是没有Schema.isNullable()这个方法 2. 为了解决问题 1,我尝试使用maven shade plugin,把org.apache.avro这个依赖进行relocate pom为 https://paste.ubuntu.com/p/SMYHy66bc6/ 但是报错 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.2.0:shade (shade-deps) on project leyan-flink: Error creating shaded jar: Problem shading JAR /Users/dongzhi/.m2/repository/org/glassfish/jersey/core/jersey-common/2.30/jersey-common-2.30.jar entry META-INF/versions/11/org/glassfish/jersey/internal/jsr166/SubmissionPublisher$1.class: org.apache.maven.plugin.MojoExecutionException: Error in ASM processing class META-INF/versions/11/org/glassfish/jersey/internal/jsr166/SubmissionPublisher$1.class: UnsupportedOperationException -> [Help 1] [ERROR] 这个暂时没找到解决方案。因此求助社区 降级avro的原因 flink-sql集成hive时遇到了问题 另,我之前使用avro 1.10没问题 但是在尝试引入hive依赖,在SQL使用hive的内置函数时,依赖项为 flink-avro-confluent-registry-1.12.0 flink-connector-hive_2.11-1.12.0(provided) hive-exec 2.3.4 (provided) hadoop-mapreduce-client-core 2.6.0-cdh5.13.3 <= 引入这个依赖是因为遇到了和 http://apache-flink.147419.n8.nabble.com/Flink-td7866.html 相同的问题 在flink/lib下的额外jar包为 flink-sql-connector-hive-2.3.6_2.11-1.12.0.jar hadoop-mapreduce-client-core-2.6.0-cdh5.13.3.jar 遇到了和 https://github.com/confluentinc/schema-registry/issues/1432 类似的报错。因此尝试降级avro到1.8.2 java.lang.NoSuchFieldError: FACTORY at org.apache.avro.Schemas.toString(Schemas.java:36) ~[trade-event.jar:1.12.0] 但是整个项目使用 mvn dependency:tree分析,没有任何地方使用 avro 1.8.2。 flink应用的发布方式是on-yarn per-job;线上CDH集群使用的avro版本比较旧,不知道是不是因为这个问题导致哪里使用了avro 1.8.2 谢谢