配置Interpreter 有以下2种方式(通常情况下我们需要结合这两种配置方式):

  • 在Interpreter 页面进行全局配置
  • 在Note页面进行Note级别的配置

Interpreter 页面配置

Interpreter 页面的配置是全局的,会影响所有的用户的所有Note。所以在Interpreter页面适合配置那些对于全局用户来说都是一样的配置,比如 FLINK_HOME,HADOOP_CONF_DIR, HIVE_CONF_DIR, zeppelin.pyflink.python
image.png

Note级别配置

Note 级别的配置只有在当Interpreter binding模式选择 Isolated Per Note的时候才起作用。Note 级别的配置一般放在每个Note的第一个Paragraph,是通过一个特殊的 Inline Configuration Interpreter (%flink.conf) 来实现的。
一般每个Note都有自己对应的Job和场景,我们需要对每个Note做特殊的配置,比如 flink.execution.packages, flink.udf.jars, flink.yarn.appName 等等。Note级别的配置优先级比 Interpreter的全局配置要高,所以比如你可以在Note配置 FLINK_HOME 来覆盖Interpreter页面里配置的 FLINK_HOME。下图是一个简单的例子
image.png

配置选项

这边列举一些场景的配置选项,除了这些Zeppelin支持所有的Flink配置选项,可以参考这边 https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/config.html

Name Default Value Description
FLINK_HOME Flink 安装目录
HADOOP_CONF_DIR Hadoop 配置文件目录 (Yarn 模式下需要配置)
HIVE_CONF_DIR Hive 配置文件目录 (集成Hive需要配置)
flink.execution.mode local loca | remote | yarn | yarn-application
flink.execution.remote.host remote模式下JobManager的地址
flink.execution.remote.port remote模式下JobManager的Rest 端口
flink.jm.memory 1024 JobManager的分配内存 (只在yarn, yarn-application 模式下起作用)
flink.tm.memory 1024 TaskManager的分配内存 (只在yarn, yarn-application模式下起作用)
flink.tm.slot 1 TaskManager的slot数 (只在yarn, yarn-application模式下起作用)
local.number-taskmanager 4 TaskManager的slot数 (只在Local模式下起作用)
flink.yarn.appName Zeppelin Flink Session Yarn app name (只在yarn, yarn-application模式下起作用)
flink.yarn.queue Yarn queue (只在yarn, yarn-application模式下起作用)
zeppelin.flink.uiWebUrl
flink web ui的链接模板,一般用在你想用yarn的proxy url 或者 启用knox的时候你想用yarn app的knox url,比如https://knox-server:8443/gateway/cluster-topo/yarn/proxy/
application_1626074007058_0105
/ ,这时候,你可以设置这个参数为 https://knox-server:8443/gateway/cluster-topo/yarn/proxy/{{applicationId}}/
flink.udf.jars flink udf的jar包,多个jar包以逗号间隔,可以是本地路径也是可以是hdfs路径
flink.udf.jars.packages flink udf 的package搜索路径,默认情况下 flink.udf.jars 里所有的
flink.execution.jars 第三方依赖的jar包,多个jar包之间用逗号间隔
flink.execution.packages 第三方依赖的packages,多package之间用逗号间隔
zeppelin.flink.scala.color true scala shell的输出是否是彩色输出
zeppelin.flink.enableHive false 是否启动HiveCatalog
zeppelin.flink.hive.version hive版本(只在1.10版本需要指定,1.11之后不需要指定)
zeppelin.flink.module.enableHive false 是否启用HiveModule,启用HiveModule之后就会优先选择Hive UDF
zeppelin.flink.printREPLOutput true 是否打印出Scala Shell 的输出
zeppelin.flink.maxResult 1000 SQL结果最大输出行数
zeppelin.pyflink.python python python可执行文件路径,默认是PATH里的python
flink.interpreter.close.shutdown_cluster true 是否在重启interpreter的时候杀掉flink cluster
zeppelin.interpreter.close.cancel_job true 是否再重启interpreter的时候cancel正在running的job
zeppelin.flink.concurrentBatchSql.max 10 Batch SQL 的最大并发数
zeppelin.flink.concurrentStreamSql.max 10 Streaming SQL 的最大并发数

视频教程

Flink on Zeppelin 8. Inline Configuraiton.mp4 (24.39MB)

钉钉群+公众号

Flink on Zeppelin 3群钉钉.JPG image.png