[Zeppelin] 如何配置、使用和调试local模式的Spark解释器

背景

之前我们分别安装过Zeppelin和Spark,在本文和下一篇文章里我们学习如何通过Zeppelin来使用Spark解释器,这篇文章介绍local模式,下一篇文章介绍启用了Kerberos认证的on Yarn模式,这篇文章介绍local模式,但local模式的很多配置和问题在其它模式都可能遇到,所以即使使用其它模式的Spark,也可以参考本文。

注意:本文是在Zeppelin和Spark都已经安装好的基础上进行的,如果还没有安装,请查看往期文章:
如何安装启动Zeppelin
如何安装Spark和使用spark-shell

配置Spark解释器

  1. 修改Zeppelin的配置文件,在Zeppelin的目录下编辑 conf/zeppelin-env.sh

    export SPARK_HOME=/Users/iamabug/spark-2.4.4-bin-hadoop2.7
    # 将SPARK_HOME环境变量设置为Spark的安装目录,根据实际路径修改
    

    修改后保存,然后重启Zeppelin:

    bin/zeppelin-daemon.sh restart
    

    注意(如果仅仅是学习体验Zeppelin可以忽略这一段):章剑锋Jeff在简书文章:如何在Apache Zeppelin中玩转Spark (1)中给出了三种配置Spark解释器的方法,其它两种都比修改 zeppelin-env.sh 这种灵活,所以不建议用这种方式来配置Spark,这种观点当然是对的,但凡事都需要tradeoff,在很多实际情况中,维护配置Zeppelin和Spark的人员和真正使用Zeppelin和Spark的人员不是同一拨人,即一拨人提供Zeppelin给另外一拨人用,这种情况下使用方不了解也不关心配置细节,只要有的用就好,所以在业务初期阶段,提供一个固定的统一的Spark解释器配置也不失为一种选择,毕竟不灵活的好处是复杂度低,维护成本也低,可以等到使用方有更个性化的需求时再进行分别定制也不迟,有这个需求的同学请参考Jeff的文章进行配置。

  2. 重启后,在浏览器中打开Zeppelin的页面,我的地址是 http://localhost:8181,点击右上角的 anonymous ,会出现一个下拉菜单:

    选择 Interpreter,在新页面的搜索框输入 spark

    点击 edit 按钮,可以对Zeppelin中运行的Spark解释器进行配置,比如将 master 的默认值 local[*] 改为 local[2](*表示使用所有可用的CPU,2表示只使用两个核),然后点击左下角的 Save 按钮,然后在弹出的确认重启对话框中点击 OK,重启完毕后回到主页,下面来创建一个Zeppelin的Notebook使用我们刚才配置的Spark解释器。

使用Spark解释器

  1. 在主页上点击 Create new note,并在弹出的对话框中输入Notebook的名字,Default Interpreter 不用修改,然后点击 Create

  2. 之后会出现一个新的页面用来写代码,效果和 spark-shell 很像,只不过每行代码前需要 %spark%spark.pyspark 这样的标记,表示这行代码是scala还是python,spark解释器总共支持五种子解释器:

    • %spark
    • %spark.pyspark
    • %spark.r
    • %spark.sql
    • %spark.dep

    下面用 %spark.pyspark 写几行代码试试:

%spark.pyspark
arr = [1, 2, 3, 4, 5]
# 这里sc是Zeppelin替我们初始化好的SparkContext对象
r = sc.parallelize(arr)

​ 然后点击代码右侧的运行按钮或者使用快捷键 Shift + Enter 运行这两行代码,结果报错了:

java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.defaultNumHeapArena()I
	at org.apache.spark.network.util.NettyUtils.createPooledByteBufAllocator(NettyUtils.java:113)
	at org.apache.spark.network.clie
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值