学习 Zeppelin(一): 配置 Spark Interpreter

更新至 Zeppelin 0.8.1

环境

  • Java 8+
  • Apache Zeppelin 0.8.1
  • Apache Spark 2.4.3

环境变量

修改 etc/zeppelin-env.sh,导出环境变量

export HADOOP_CONF_DIR=/etc/hadoop  
export SPARK_HOME=/var/lib/spark  

确保 $HADOOP_CONF_DIR 目录下包含 core-site.xml、hdfs-site.xml 和 yarn-site.xml 文件。

确保 $SPARK_HOME/conf 目录下包含 hive-site.xml 文件。

注意:Zeppelin 的 Spark Interpreter 集成了 Spark 软件包,不推荐使用。

配置 Spark

启动 Zeppelin 之后,进入 Interpreter 菜单。

编辑 Spark interpreter 设置中的 master 属性:

  • local[*] 本地模式
  • spark://spark-master:7007 Spark Standalone 集群模式
  • yarn-client YARN Client 模式
  • yarn-cluster YARN Cluster 模式

注意:生产环境 master 不建议设置为 local[*] 本地模式。

Q&A

netty-all 版本冲突

异常信息:

java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.defaultNumHeapArena()  

解决方案:

使用 $SPARK_HOME/libs/netty-all-4.1.17.Final.jar 替换 $ZEPPELIN_HOME/lib/netty-all-4.0.23.Final.jar。

jackson-databind 版本冲突

异常信息:

com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.8.11-1  

解决方案:

使用 $SPARK_HOME/libs/jackson-databind-2.6.7.1.jar 替换 $ZEPPELIN_HOME/lib/jackson-databind-2.8.11.1.jar。

commons-lang3 版本冲突

异常信息:

java.io.InvalidClassException: org.apache.commons.lang3.time.FastDateParser; local class incompatible: stream classdesc serialVersionUID = 2, local class serialVersionUID = 3  

解决方案:

使用 $SPARK_HOME/libs/commons-lang3-3.5 替换 $ZEPPELIN_HOME/lib/commons-lang3-3.4.jar 和 $ZEPPELIN_HOME/lib/commons-lang3-3.4.jar。

测试

重启 Spark Interpreter 后,新建笔记本,执行:

sc.version  

参考