Flink+hudi遇到的坑(error原因及处理,随时补充)

1. java.lang.LinkageError: org/apache/hudi/org/apache/parquet/column/ColumnDescriptor

原因:主键问题

处理方式:检查建表语句主键,参考官网主键设置。

2. java.lang.NoSuchMethodError: org.apache.flink.table.factories.DynamicTableFactory$Context.getCatalogTable()Lorg/apache/flink/table/catalog/CatalogTable

:nosuchMehodError(没有该方法),优先考虑版本是否适配。因为版本不适配导致程序在找相应版本方法时候找不到,就会报这个错误。

处理方式:根据官网找到和下载flink和hudi相应的适配版本即可。比如scala2.11.8、flink1.13.6和hudi0.10.1就适配(亲测)。

地址如下:

scala2.11.8:https://www.scala-lang.org/download/2.11.8.html 下的scala-2.11.8.tgz

flink1.13.6:https://dlcdn.apache.org/flink/flink-1.13.6/flink-1.13.6-bin-scala_2.11.tgz

hudi0.10.1:https://repo.maven.apache.org/maven2/org/apache/hudi/hudi-flink-bundle_2.11/0.10.1/hudi-flink-bundle_2.11-0.10.1.jar

3. Could not execute SQL statement. Reason: java.net.ConnectException: Connection refused

 原因:拒绝连接,意味着访问hdfs地址访问不到或者flink整个程序已经挂掉。

处理方式:1.检查hudi映射的hdfs文件的地址是否正确

                  2.检查Hadoop集群要访问节点namenode是否是active状态(建议直接ip地址:50070查看),不是的话换个active节点就行。比如Hadoop01节点是standby,Hadoop02节点是active,直接更改地址'path' = 'hdfs://hadoop01:8020/hud/改为'path' = 'hdfs://hadoop02:8020/hud/'。

                  3.检查flink集群是否在线。(建议直接ip地址:8081查看),如果进不去,重flink集群

 ${FLINK_HOME}/bin/start-cluster.sh

猜你喜欢

转载自blog.csdn.net/qq_40788398/article/details/124147723