Zeepline 安装和配置Spark

本文详细介绍Apache Zeppelin的安装步骤,从下载压缩包到配置Java环境,再到启动与网络访问设置,最后深入配置Spark解析器,确保在YARN集群上正确运行。文章覆盖Zeppelin与Spark的常见配置问题及解决方案。

第一步: 去官网下载压缩包.

http://zeppelin.apache.org/download.html


第二步: 解压安装.

注意点: Zeppline 依赖 Java, 因此需要配置好 java 环境.


第三步: 启动 (坑多)

进入到 /bin 目录下, 用 ./zeppline-demaon.sh start 启动.

./zeppelin-dameon.sh start
注意点:
一: Zeppelin 默认启动后, 只能使用 localhost:8080 这个url 来访问, 其他的都不行.

比如, 你的虚拟机在局域网内的 ip 为 192.168.0.244, 是不能通过 192.168.0.244:8080 这个url来访问的!!! 大坑, 因此需要进入 conf 配置.
修改 Zeppelin-site.xml 文件中的 如下内容:

<property>
  <name>zeppelin.server.addr</name>
  <value>127.0.0.1</value>   # 把此处的 ip 改成 0.0.0.0  !!!  
  <description>Server binding address</description>
</property>

修改后, 重启即可, 然后就可以在局域网内的任何一台电脑上用 192.168.0.244:8080 来访问 Zeppelin 的 WebUI.


二: 端口冲突.

默认使用的是 8080 端口, 启动之前, 用 lsof 工具查看是否被占用.

lsof -i:8080

如果没有输出, 说明没有被任何进程占用.

如果冲突, 在 Zeppelin-site.xml 文件中, 修改端口:

<property>
  <name>zeppelin.server.port</name>
  <value>8080</value>
  <description>Server port.</description>
</property>

第四步:用户配置

先把允许匿名用户关闭, 在 Zeppelin-site.xml 中修改:

<property>
  <name>zeppelin.anonymous.allowed</name>
  <value>true</value>  # 此处改成 false
  <description>Anonymous user allowed by default</description>
</property>

修改 shiro.ini 文件, 在 user 模块下, 添加用户名和密码及角色

[users]
admin = admin, admin
# 用户名 = 密码, 角色 (密码不包括那个逗号!)
致此, Zeppelin 初步的安装和配置完成!




配置 Spark 解析器:

根据官网介绍, 配置 spark 解析器, 只需要两步:

第一步: 修改 Zeppelin-env.sh , 修改如下:
#### Spark interpreter configuration ####

## Kerberos ticket refresh setting
##
#export KINIT_FAIL_THRESHOLD                    # (optional) How many times should kinit retry. The default value is 5.
#export KERBEROS_REFRESH_INTERVAL               # (optional) The refresh interval for Kerberos ticket. The default value is 1d.

## Use provided spark installation ##
## defining SPARK_HOME makes Zeppelin run spark interpreter process using spark-submit
##
export SPARK_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark        #---------------------修改此处
# (required) When it is defined, load it instead of Zeppelin embedded Spark libraries
# export SPARK_SUBMIT_OPTIONS                   # (optional) extra options to pass to spark submit. eg) "--driver-memory 512M --executor-memory 1G".
# export SPARK_APP_NAME                         # (optional) The name of spark application.

## Use embedded spark binaries ##
## without SPARK_HOME defined, Zeppelin still able to run spark interpreter process using embedded spark binaries.
## however, it is not encouraged when you can define SPARK_HOME
##
# Options read in YARN client mode
export HADOOP_CONF_DIR=/etc/hadoop/conf        # ------------------------- 修改此处                   
# yarn-site.xml is located in configuration directory in HADOOP_CONF_DIR.
# Pyspark (supported with Spark 1.2.1 and above)
# To configure pyspark, you need to set spark distribution's path to 'spark.home' property in Interpreter setting screen in Zeppelin GUI
# export PYSPARK_PYTHON                         # path to the python command. must be the same path on the driver(Zeppelin) and all workers.
# export PYTHONPATH

## Spark interpreter options ##
##
# export ZEPPELIN_SPARK_USEHIVECONTEXT  # Use HiveContext instead of SQLContext if set true. true by default.
# export ZEPPELIN_SPARK_CONCURRENTSQL   # Execute multiple SQL concurrently if set true. false by default.
# export ZEPPELIN_SPARK_IMPORTIMPLICIT  # Import implicits, UDF collection, and sql if set true. true by default.
# export ZEPPELIN_SPARK_MAXRESULT       # Max number of Spark SQL result to display. 1000 by default.
# export ZEPPELIN_WEBSOCKET_MAX_TEXT_MESSAGE_SIZE       # Size in characters of the maximum text message to be received by websocket. Defaults to 1024000

以上内容, 来源于 Zeppelin-en.sh 的 spark interpreter 模块, 需要修改 spark_home 和 hadoop_conf_dir, 其中 hadoop_conf_dir 只有在使用 spark on yarn 的时候需要修改.


第二步: 重启后, 进入 interpreter 面板, 修改 master 为你的 spark 在yarn上面的提交模式, 有 client 和 cluster 两种:

在这里插入图片描述

官方配置文档:

http://zeppelin.apache.org/docs/0.8.2/interpreter/spark.html#configuration



接下来, 如果顺利的话, 创建 note book, 使用 spark interpreter , 就可以运行 spark 程序了, 如果报错, 那恭喜你, 有的折腾了, 哈哈哈!

报错, 先去 logs 目录下看日志

看 interpreter 的启动日志, 我的几次报错都是报 NoSuchMethodError 类似的错误, 这类错误一般都是因为 jar 包版本冲突导致的.

如 一开始的 Netty 报错 NoSuchMethodError, 只需要把 spark 的 jars 目录下的有关 Netty 的 jar 包拷贝到 Zeepline 的 lib 目录下, 替换原来的 Netty 相关的 jar 包, 便可以解决这个问题.

冲突的 jar 包不少, 前前后后有拷贝 hadoop-yarn 相关的, jackson, netty 相关的, 最终 spark interpreter 启动成功, 成功执行 sparkSQL!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值