Flink+hudi에서 발생하는 함정(오류 원인 및 해결 방법, 언제든지 추가)

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

이유: 기본 키 문제

해결 방법: 테이블 생성 구문의 기본 키를 확인하고 공식 웹 사이트에서 기본 키 설정을 참조하십시오.

2. 자바.랭. 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은 호환됩니다(pro-test).

주소는 다음과 같습니다.

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. SQL 문을 실행할 수 없습니다. 이유: java.net.ConnectException: 연결 거부

 이유: 연결이 거부되었습니다. 이는 hdfs 주소에 대한 액세스가 불가능하거나 전체 flink 프로그램이 중단되었음을 의미합니다.

처리 방법: 1. hudi로 매핑된 hdfs 파일의 주소가 올바른지 확인합니다.

                  2. Hadoop 클러스터가 접속할 노드의 네임노드가 활성 상태인지 확인하고(직접 ip 주소: 50070 확인 권장) 그렇지 않은 경우 활성 노드를 변경하면 됩니다. 예를 들어, Hadoop01 노드는 대기 상태이고 Hadoop02 노드는 활성 상태이므로 주소 '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