You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Zeppelin连接远程Flink集群失败问题求助

Apache Zeppelin 连接远程Flink集群序列化版本不兼容问题

尝试通过docker-compose部署Apache Zeppelin与Apache Flink,Zeppelin在本地模式(自行启动Flink集群)下可正常工作,但在远程模式(连接现有集群)时出现类序列化版本不兼容错误。目前使用Flink 1.12.0与Zeppelin 0.10.1搭配,这是唯一能让本地模式正常运行的版本。

docker-compose.yml配置

version: "2.2"
services:
  jobmanager:
    image: flink:1.12.0
    ports:
      - "8081:8081"
    command: jobmanager
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager        
  taskmanager:
    image: flink:1.12.0
    depends_on:
      - jobmanager
    command: taskmanager
    scale: 1
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        taskmanager.numberOfTaskSlots: 2  
  zeppelin:
    image: apache/zeppelin:0.10.1
    hostname: zeppelin
    depends_on:
      - taskmanager
    container_name: zeppelin
    ports:
      - "9080:8080"
      - "9081:8081"
    volumes:
      - /home/administrator/flink/flink-1.12.0:/opt/flink
    environment:
      FLINK_HOME: /opt/flink

Zeppelin远程Flink集群配置

flink.execution.mode: remote
flink.execution.remote.host: jobmanager
flink.execution.remote.port: 8081

错误堆栈信息

data: org.apache.flink.api.scala.DataSet[String] = org.apache.flink.api.scala.DataSet@6adbed6a
org.apache.flink.client.program.ProgramInvocationException: Job failed (JobID: c55932eec9cc32b8df64630be00b2532)
   at org.apache.flink.client.deployment.ClusterClientJobClientAdapter.lambda$null$6(ClusterClientJobClientAdapter.java:119 undefined)
   ...
Caused by: java.io.InvalidClassException: org.apache.flink.api.scala.typeutils.CaseClassTypeInfo; local class incompatible: stream classdesc serialVersionUID = -3156538608383968041, local class serialVersionUID = -8170136754691974512
   ...

已尝试操作

  • 查看Flink日志寻找其他端口尝试,均无效;
  • 尝试其他Flink版本,但出现不同错误,甚至本地模式都无法正常运行。

解决方案建议

  1. 统一Flink依赖版本
    错误核心是Zeppelin内置的Flink Scala依赖与远程集群版本不匹配。虽然挂载了本地Flink 1.12.0到Zeppelin容器,但Zeppelin 0.10.1默认携带的Flink依赖可能和集群的Scala版本(如2.11/2.12)不一致:

    • 检查本地Flink 1.12.0的Scala版本:查看flink-1.12.0/lib下的jar包,比如flink-scala_2.11-1.12.0.jar对应Scala 2.11;
    • 替换Zeppelin默认的Flink依赖:删除Zeppelin容器内interpreter/flink下的旧jar包,复制集群flink-1.12.0/lib中的所有jar到该目录,确保依赖完全一致。
  2. 修正远程连接端口
    当前配置的8081是Flink Web UI端口,远程连接需使用JobManager的RPC端口(默认6123),修改Zeppelin配置:

    flink.execution.mode: remote
    flink.execution.remote.host: jobmanager
    flink.execution.remote.port: 6123
    

    同时在docker-compose的jobmanager环境变量中明确RPC端口:

    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        jobmanager.rpc.port: 6123
    
  3. 确保容器网络连通性
    在Zeppelin容器内执行ping jobmanager和telnet jobmanager 6123,确认能正常访问JobManager的RPC端口,排除网络不通的问题。

  4. 使用官方兼容镜像
    尝试使用Zeppelin官方提供的带指定Flink版本的镜像,比如apache/zeppelin:0.10.1-flink-1.12(若存在),这类镜像已预先处理好依赖兼容性,避免手动配置的冲突。

内容的提问来源于stack exchange,提问作者Michel D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 07:52:53