如何运行版本不兼容的Apache Zeppelin 0.9.0与Apache Spark 3.1.1
Apache Zeppelin Spark 3.1.1版本不兼容问题解决方案
你遇到的报错为当前使用的Zeppelin版本内置Spark版本校验逻辑不兼容Spark 3.1.1导致,可根据使用场景选择以下方案解决:
方案1:临时关闭版本校验(仅推荐测试环境使用)
配置方法
有两种配置方式可选择:
- 全局生效配置:编辑Zeppelin安装目录下的
conf/zeppelin-site.xml文件,添加如下配置项:
<property> <name>zeppelin.spark.enableSupportedVersionCheck</name> <value>false</value> <description>关闭Spark版本校验</description> </property>
修改完成后重启Zeppelin整服务即可生效。
- 单Spark解释器生效配置:登录Zeppelin WebUI,点击右上角的
Interpreter菜单,找到Spark解释器点击编辑按钮,新增自定义配置项zeppelin.spark.enableSupportedVersionCheck,值设为false,保存后重启Spark解释器即可,无需重启整个Zeppelin服务。
风险说明
该配置确实仅为开发者调试设计,生产环境开启可能出现未知兼容性问题,包括但不限于UDF执行异常、RDD算子报错、资源调度逻辑紊乱等,生产环境不建议使用该方案
方案2:升级Zeppelin版本(推荐生产环境使用,无需更换现有Spark版本)
Zeppelin 0.10.0及以上稳定版本已经官方原生支持Spark 3.0~3.3全系列版本,如果你当前使用的Zeppelin版本低于0.10.0,直接升级Zeppelin到最新稳定版即可完全适配Spark 3.1.1,无需修改任何版本校验参数,也不存在兼容性风险。
升级注意事项:
- 升级前完整备份
conf目录下的所有配置文件、notebook目录下的所有笔记内容 - 升级后可直接复用原有Spark 3.1.1的环境变量配置,Spark侧无需做任何调整
方案3:改用JDBC解释器连接Spark Thrift Server
如果暂时不方便升级Zeppelin,也不想关闭版本校验,可通过JDBC方式对接现有Spark集群,不受版本校验限制:
- 启动现有Spark 3.1.1集群的Thrift Server服务
- 在Zeppelin中新增JDBC解释器,配置JDBC连接地址为
jdbc:hive2://<thrift-server节点IP>:<端口号>,驱动类填写org.apache.hive.jdbc.HiveDriver,配置对应访问用户名密码 - 保存配置后即可通过JDBC解释器提交Spark SQL作业,所有Spark原生SQL能力均可正常使用
内容的提问来源于stack exchange,提问作者Helen A
相关产品推荐
相关产品推荐

