Java flink:无法初始化类org.apache.hadoop.hdfs.protocol.HdfsConstants

Java flink:无法初始化类org.apache.hadoop.hdfs.protocol.HdfsConstants,java,hdfs,apache-flink,Java,Hdfs,Apache Flink,为了将数据写入hdfs,我在pom中添加了flink-connector-filesystem_2.11,因此可以使用BucketingSink 当我将jar提交给flink集群时,它会向hdfs写入一些消息。然而,几分钟后,异常被抛出 通过jar-tvf-show-event-to-kafka/target/show-event-to-kafka-1.0-SNAPSHOT.jar | grep HdfsConstants.class,我发现HdfsConstants确实存在 如何修复它 堆栈跟

为了将数据写入hdfs,我在pom中添加了
flink-connector-filesystem_2.11
,因此可以使用
BucketingSink

当我将jar提交给flink集群时,它会向hdfs写入一些消息。然而,几分钟后,异常被抛出

通过
jar-tvf-show-event-to-kafka/target/show-event-to-kafka-1.0-SNAPSHOT.jar | grep HdfsConstants.class
,我发现
HdfsConstants
确实存在

如何修复它

堆栈跟踪:

TimerException{java.io.IOException: DataStreamer Exception: }
    at org.apache.flink.streaming.runtime.tasks.SystemProcessingTimeService$TriggerTask.run(SystemProcessingTimeService.java:288)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: DataStreamer Exception: 
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:695)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hdfs.protocol.HdfsConstants
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1413)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1357)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:587)
POM:


4.0.0
com.mafengwo.recomment.rtp
父项目
聚甲醛
1.0-快照
快速启动
弗林克模板
特征计算
向卡夫卡展示活动
班长
redis的页面事件
推荐rtp
UTF-8
1.6.0
2.11
1.8
${java.version}
${java.version}
org.apache.flink
弗林克爪哇
${flink.version}
org.apache.flink
flink-streaming-java_${scala.binary.version}
${flink.version}
org.apache.flink
燧石芯
${flink.version}
org.apache.flink
flink-connector-kafka-0.8_2.11
${flink.version}
org.apache.flink
flink-connector-U 2.11
${flink.version}
com.google.code.gson
格森
2.8.5
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
2.9.7
org.junit.jupiter
朱尼特木星发动机
5.1.0
测试
org.apache.logging.log4j
log4japi
2.11.1
org.apache.logging.log4j
log4j型芯
2.11.1
redis.clients
绝地武士
2.9.0
com.tdunning
t-digest
3.1
com.mafengwo.com
常见的
1.30
org.apache.commons
公共文本
1.6
org.projectlombok
龙目
1.16.18
假如
src/main/resources
真的
**/*.物业
**/*.xml
org.apache.maven.plugins
maven阴影插件
3.0.0
包裹
阴凉处
flink:force shading
com.google.code.findbugs:jsr305
org.slf4j:*
log4j:*
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
com.mafengwo.FlinkEntry
假的
nexus发布
Nexus发布库
https://nexus.mfwdev.com/repository/recommend-release/
nexus快照
Nexus快照存储库
https://nexus.mfwdev.com/repository/recommend-snapshots/
nexus发布
Nexus发布库
https://nexus.mfwdev.com/repository/recommend-release/

通过在“flink-conf.yaml”中明确指定检查点的配置,我解决了这个问题。flink的版本是1.8.2

state.backend: filesystem
state.checkpoints.dir: hdfs://<ip>:<port>/flink-checkpoints
state.savepoints.dir: hdfs://<ip>:<port>/flink-checkpoints
state.backend:文件系统
state.checkpoints.dir:hdfs://:/flink checkpoints
state.savepoints.dir:hdfs://:/flink检查点

通过在“flink-conf.yaml”中明确指定检查点的配置,我解决了这个问题。flink的版本是1.8.2

state.backend: filesystem
state.checkpoints.dir: hdfs://<ip>:<port>/flink-checkpoints
state.savepoints.dir: hdfs://<ip>:<port>/flink-checkpoints
state.backend:文件系统
state.checkpoints.dir:hdfs://:/flink checkpoints
state.savepoints.dir:hdfs://:/flink检查点

我想先删除hadoop core上的依赖项。@BenWatson谢谢,我尝试删除了一些未使用的依赖项,但仍然显示了此异常。还有其他建议吗?我已经发布了我的新pom。我会确保你的Flink/Hadoop版本与集群上的版本相匹配,并查看Flink GitHub repos,看看它们的pom是什么样子。我会首先删除对Hadoop core的依赖关系。@BenWatson谢谢,我尝试删除一些未使用的依赖关系,但仍然显示此异常。还有其他建议吗?我已经发布了我的新pom。我会确保您的Flink/Hadoop版本与集群上的版本匹配,并查看Flink GitHub repo