学习 Zeppelin(三): 配置 Interpreter 生命周期管理

Zeppelin 启动 Spark Interpreter,通过 bin/interpreter.sh 创建 Spark Driver 进程,并在集群中运行一个长期的 Spark 任务。白天,是 Zeppelin 的使用的高峰;夜晚,是 Spark 批处理任务的高峰,而 Zeppelin 则是空闲的。为了合理使用集群资源,需要在夜晚关闭 Spark Interpreter 释放集群资源。

Zeppelin 提供了两个 Interpreter 生命周期管理的实现:

  • org.apache.zeppelin.interpreter.lifecycle.NullLifecycleManager 空实现,需要在 UI 界面手动停止 Interpreter;
  • org.apache.zeppelin.interpreter.lifecycle.TimeoutLifecycleManager Interpreter 处于空闲状态超时,关闭 Interpreter。

默认,使用 NullLifecycleManager。

TimeoutLifecycleManager

启用 TimeoutLifecycleManager,编辑 conf/zeppelin-site.xml 文件:

<property>  
  <name>zeppelin.interpreter.lifecyclemanager.class</name>
  <value>org.apache.zeppelin.interpreter.lifecycle.TimeoutLifecycleManager</value>
  <description>LifecycleManager class for managing the lifecycle of interpreters, by default interpreter will
  be closed after timeout</description>
</property>

<property>  
  <name>zeppelin.interpreter.lifecyclemanager.timeout.checkinterval</name>
  <value>30000</value>
  <description>Milliseconds of the interval to checking whether interpreter is time out</description>
</property>

<property>  
  <name>zeppelin.interpreter.lifecyclemanager.timeout.threshold</name>
  <value>3600000</value>
  <description>Milliseconds of the interpreter timeout threshold, by default it is 1 hour</description>
</property>  

配置 zeppelin.interpreter.lifecyclemanager.class 指定 Interpreter 生命周期管理实现类;

配置 zeppelin.interpreter.lifecyclemanager.timeout.checkinterval 指定超时检查周期,单位为毫秒;

配置 zeppelin.interpreter.lifecyclemanager.timeout.threshold 指定超时时间,单位为毫秒。