Yarn上的Zeppelin解释器

Zeppelin 能够在 yarn 容器中运行解释器进程。主要的好处是可扩展性,如果你运行大量的解释器进程,不会耗尽 Zeppelin 服务器主机的内存。

先决条件

以下是yarn解释器模式所需的。

  • 已安装Hadoop客户端(支持2.x和3.x版本)。
  • $HADOOP_HOME/bin 被放入 PATH 中。因为内部 Zeppelin 会运行命令 hadoop classpath 来获取所有 Hadoop 的 jar 包,并将它们放入 Zeppelin 的类路径中。
  • zeppelin-env.sh中将USE_HADOOP设置为true

配置

Yarn解释器模式需要为每个解释器设置。你可以将zeppelin.interpreter.launcher设置为yarn以在yarn模式下运行。 除此之外,你还可以指定其他属性,如下表所示。

名称 默认值 描述
zeppelin.interpreter.yarn.resource.memory 1024 解释器进程的内存,单位:mb
zeppelin.interpreter.yarn.resource.memoryOverhead 384 在yarn解释器模式下,每个解释器进程分配的非堆内存量,除非另有说明,单位为MiB。这是用于VM开销、内部字符串、其他本地开销等的内存。
zeppelin.interpreter.yarn.resource.cores 1 解释器进程的CPU核心数
zeppelin.interpreter.yarn.queue default yarn 队列名称
zeppelin.interpreter.yarn.node.label.expression 为解释器进程指定的yarn节点标签表达式

与非Yarn解释器模式(本地模式)的差异

yarn解释器模式与非yarn解释器模式(本地模式)之间存在几个差异

  • 将为解释器进程分配新的yarn应用程序。
  • 任何本地路径设置在yarn解释器进程中都不会起作用。例如,如果你在yarn解释器模式下运行python解释器,那么你需要确保zeppelin.python的python可执行文件存在于yarn集群的所有节点中。因为python解释器可能会在任何节点上启动。
  • 不要将其用于spark解释器。相反,使用spark内置的yarn-client或yarn-cluster,这更适合spark解释器。