如何正确安装Zeppelin并加载PySpark?执行代码遇类找不到错误求助
解决Zeppelin加载PySpark时的
ClassNotFoundException问题 你遇到的这个错误核心原因是Zeppelin与Spark版本不兼容。Zeppelin 0.7.3是一个较早的版本,官方支持的Spark版本上限为2.1.x,而你使用的Spark 2.3.0在API结构上有变化,导致Zeppelin找不到org.apache.spark.ui.jobs.JobProgressListener这个类。
下面是两种可行的解决方案,按推荐优先级排序:
方案一:升级Zeppelin到兼容Spark 2.3.0的版本
这是最直接且稳定的解决方式,Zeppelin 0.8.0及以上版本开始支持Spark 2.3.x系列。具体步骤如下:
- 下载Zeppelin 0.8.2稳定版的二进制包,然后解压:
tar xvf zeppelin-0.8.2-bin-all.tgz
- 确认环境变量配置(如果之前的配置已经正确,可跳过此步):
vi ~/.bashrc
添加或修改配置:
export SPARK_HOME="/home/miguel/spark-2.3.0-bin-hadoop2.7/"
执行以下命令生效配置:
source ~/.bashrc
- 启动Zeppelin服务:
cd zeppelin-0.8.2-bin-all bin/zeppelin-daemon.sh start
- 测试PySpark代码:
在Zeppelin notebook中新建note,输入以下代码并运行:
print("Hello")
方案二:降级Spark到Zeppelin 0.7.3支持的版本
如果你不想升级Zeppelin,可以将Spark降级到2.1.x版本(比如2.1.3,适配hadoop2.7),具体步骤如下:
- 下载Spark 2.1.3适配hadoop2.7的二进制包,然后解压:
tar xvf spark-2.1.3-bin-hadoop2.7.tgz
- 修改环境变量中的
SPARK_HOME路径:
vi ~/.bashrc
更新为:
export SPARK_HOME="/home/miguel/spark-2.1.3-bin-hadoop2.7/"
生效配置:
source ~/.bashrc
- 重启Zeppelin服务后,再次测试PySpark代码即可。
额外排查要点
如果按上述步骤操作后仍有问题,可以检查以下内容:
- 确认Java版本为8:Spark 2.3.0和Zeppelin 0.8.x都依赖Java 8环境,运行
java -version确认输出为1.8.x。 - 手动配置Zeppelin的Spark interpreter:
- 打开Zeppelin UI(默认地址
http://localhost:8080) - 点击右上角的
Interpreter按钮 - 找到
sparkinterpreter并点击编辑 - 在
Properties列表中确认spark.home的值与你的SPARK_HOME路径一致,保存后重启interpreter。
- 打开Zeppelin UI(默认地址
内容的提问来源于stack exchange,提问作者ambigus9
相关产品推荐
相关产品推荐

