花开不停 花开不停
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)

花开不停

此心光明,亦复何言
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)
  • Shell编程

  • Java编程笔记

  • Spark

    • Spark On Yarn 部署
    • Spark本地Idea开发环境部署
    • SparkStreaming消费Kafka
    • Spark-submit 参数配置
    • SparkStreaming开发示例
    • Zeppelin Spark解释器
      • 1. 背景
      • 2. 资源列表
      • 3. 部署Spark解释器
        • 3.1. 修改配置文件
        • 3.2. 添加Spark解释器
        • 3.3. Zeppelin解释器运行模式
  • Hadoop

  • ClickHouse

  • MySQL

  • PostgreSQL

  • MongoDB

  • 调度器

  • Zookeeper

  • Kafka

  • Flume

  • 编程世界
  • Spark
花开不停
2025-02-05
目录

Zeppelin Spark解释器原创

# 1. 背景

Spark是一个快速和通用的集群计算系统,性能是非优越,但是开发上线需要打包部署,当然对于工程化的固定流程,倒也不是非常繁琐。不过针对分析人员的灵活开发来说,执行起来就比较麻烦。

Zeppelin提供了交互式开发的Spark解释器。允许开发人群灵活的进行代码开发,提交集群运行,显示运行过程,运行结果可视化分析。

# 2. 资源列表

  • spark-3.5.0
  • zeppelin-0.11.2-bin-all

这里重点说明一下,spark和zeppelin的版本兼容问题。由于我部署的Spark版本较高,起初zeppelin安装的是0.10.0版本,各种调试后仍无法集成使用。后来切换到zeppelin最新版本0.11.2就可以正常使用了。

# 3. 部署Spark解释器

# 3.1. 修改配置文件

vim zeppelin-env.sh

export SPARK_HOME=/data/spark-3.5.0
export HADOOP_CONF_DIR=/data/hadoop-3.3.1/etc/hadoop
export HADOOP_HOME=/data/hadoop-3.3.1
export SPARK_SUBMIT_OPTIONS="--master yarn --deploy-mode cluster --executor-memory 1g  --executor-cores 1 --num-executors 3 "
1
2
3
4
5
6

# 3.2. 添加Spark解释器

  • 重点参数如下,其他参数可自行配置
name value 备注
SPARK_HOME /data/spark-3.5.0
spark.master yarn
spark.submit.deployMode cluster
spark.app.name Spark On Zeppelin
spark.driver.cores 2
spark.driver.memory 4g
spark.executor.cores 2 每个执行器分配的核数,根据事情情况来确定
spark.executor.memory 6g 每个执行器分配的使用内存,根据使用情况来确定
spark.executor.instances 3 执行器实例个数,根据具体情况来确定,并不是越多越好

# 3.3. Zeppelin解释器运行模式

Zeppelin解释器(Interpreter)的运行模式有三种,Shared Mode(共享模式)、Scoped Mode(作用域模式)和Isolated Mode(隔离模式)

Shared Mode(共享模式):一般默认创建共享模式,Zeppelin只会运行一个单独的解释器JVM集成,并且是全局的。在所有note中,变量共享。这在协同开发过程中就会遇到很多麻烦,大家开发不同逻辑使用了相同的变量,造成数据会乱。一般生产环境尽量不使用这种模式。

Scoped Mode(作用域模式):Zeppelin仍然运行一个单独的解释器JVM进程,但在“per note”的范围内,每个笔记都在其自己的专用会话中运行。这意味着,尽管所有笔记都在同一个JVM进程中运行,但每个笔记都有自己独立的会话和变量空间。资源利用率较高,因为所有笔记共享同一个JVM进程。

Isolated Mode(隔离模式):对于“per note”的范围,每个笔记都运行一个单独的解释器进程。这意味着每个笔记都有自己完全隔离的会话和变量空间,确保了最高的隔离级别。资源利用率较低,因为每个笔记都有自己的JVM进程。

基于以上特性,我们选择Scoped Mode(作用域模式)。共享解释器,隔离变量。资源利用率较高。

← SparkStreaming开发示例 Hadoop集群部署→

最近更新
01
2025-05-26当我意识到我变得自私、暴躁、情绪不受控制 原创
05-26
02
clickhouse版本升级的语法变动21.8.9.1至23.8.9.1 原创
04-22
03
2025-03-28拍婚纱照 原创
04-02
更多文章>
Theme by Vdoing | Copyright © 2023-2025 | 京ICP备2023013437号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式