NoSuchMethodError:Apache flink 的“org.apache.flink.metrics.MetricGroup org.apache.flink.api.common.functions.RuntimeContext.getMetricGroup()”

问题描述 投票:0回答:1

我在将 flink 应用程序部署到 AWS 帐户时遇到以下错误。

java.lang.NoSuchMethodError: 'org.apache.flink.metrics.MetricGroup org.apache.flink.api.common.functions.RuntimeContext.getMetricGroup()'
at software.amazon.kinesis.connectors.flink.internals.KinesisDataFetcher.<init>(KinesisDataFetcher.java:429)
at software.amazon.kinesis.connectors.flink.internals.KinesisDataFetcher.<init>(KinesisDataFetcher.java:380)
at software.amazon.kinesis.connectors.flink.FlinkKinesisConsumer.createFetcher(FlinkKinesisConsumer.java:473)
at software.amazon.kinesis.connectors.flink.FlinkKinesisConsumer.run(FlinkKinesisConsumer.java:289)
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:110)
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:67)
at org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:332)

我使用以下版本来实现不同的依赖项,不确定是哪个版本导致了此问题。


dependencies {
    compileOnly('org.projectlombok:lombok:1.18.26')
    annotationProcessor('org.projectlombok:lombok:1.18.26')
    implementation('com.amazonaws:aws-lambda-java-core:1.2.2')
    implementation('org.apache.logging.log4j:log4j-core:2.20.0')
    implementation('com.fasterxml.jackson.core:jackson-databind:2.15.1')
    implementation("org.apache.flink:flink-connector-kinesis:1.15.4")
    compileOnly('org.apache.flink:flink-streaming-java:1.15.4')
    implementation('com.amazonaws:aws-java-sdk-lambda:1.12.472')
    implementation('software.amazon.kinesis:amazon-kinesis-connector-flink:2.3.0')
    implementation('com.amazonaws:aws-kinesisanalytics-flink:2.0.0')
    implementation("com.amazonaws:aws-kinesisanalytics-runtime:1.2.0")
    implementation('com.amazonaws:aws-java-sdk-appconfig:1.12.471')
    implementation("software.amazon.awssdk:appconfig:2.20.121")

    testImplementation('org.mockito:mockito-core:2.22.0')
    testImplementation('org.mockito:mockito-inline:3.4.0')
    testImplementation('org.junit.jupiter:junit-jupiter:5.7.1')
    testImplementation("org.apache.flink:flink-test-utils_2.12:1.11.1")
    testImplementation("org.powermock:powermock-api-mockito2:2.0.9")
    testImplementation("org.powermock:powermock-module-junit4:2.0.9")
    testImplementation('org.apache.flink:flink-streaming-java_2.12:1.14.4:tests')
    testImplementation('org.apache.flink:flink-runtime_2.12:1.13.6')
    compileOnly('org.projectlombok:lombok:1.18.26')
    annotationProcessor("org.projectlombok:lombok:1.18.22")
}

有人可以帮我解决这个问题吗?

谢谢!

我尝试按照一些明智答案的建议更新一些依赖项的版本,但这对我没有帮助。

apache-flink flink-sql
1个回答
0
投票

看起来您正在使用 Flink 1.15,但包含 Flink 1.8/1.11 的依赖项。

建议您删除错误的依赖项:

software.amazon.kinesis:amazon-kinesis-connector-flink:2.3.0
© www.soinside.com 2019 - 2024. All rights reserved.