1. 背景
在IDEA中本地执行Flink程序,直接通过下面的方式创建的Environment,是没有Web UI的
val senv = StreamExecutionEnvironment.getExecutionEnvironment
2. 解决方法
pom.xml添加依赖
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-runtime-web</artifactId>
<version>1.15.0</version>
<scope>provided</scope>
</dependency>
通过下面的方式创建带有Web UI的本地Environment
import org.apache.flink.configuration.Configuration
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
object MysqlCDC2Iceberg {
def main(args: Array[String]): Unit = {
val isTestValue = 1
// 如果是本地执行,则创建带Web UI的环境
var senv: StreamExecutionEnvironment = null
if (isTestValue == 1) {
val flinkConf: Configuration = new Configuration()
flinkConf.setInteger("rest.port", 8081)
senv = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(flinkConf)
} else {
senv = StreamExecutionEnvironment.getExecutionEnvironment
}
}
}
在IDEA中运行程序,然后访问localhost:8081
,就可以看到下面的界面