将flink提交到集群中运行,可以看到job的的执行计划、占用的资源情况、Task的数量和并行度、内存、checkpoint等信息。但是将必须先job打成jar包,然后通过web页面或命令行提交到集群中执行。

但是在开发测试时,想要看到job的执行计划和运行时的一些信息,就需要每一次都将程序打包并提交到集群中运行,这样就很麻烦。如果能在IEDA或Eclipse中本地运行时,也可以有一个web页面,那就更方便了!flink本身就支持local模式运行,并且local模式也可以有webui页面,只不过要添加一个maven的依赖即可。

  1. 第一步:在pom文件中添加依赖

<!-- web ui的依赖--><dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-runtime-web_${scala.binary.version}</artifactId>
    <version>${flink.version}</version></dependency>

2. 第二部:创建local并且带ui的LocalEnvironmentWithWebUI

复制代码

package cn._51doit.flink;import org.apache.flink.configuration.Configuration;import org.apache.flink.streaming.api.datastream.DataStreamSource;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;public class FromCollectionDemo {    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration());

        DataStreamSource<String> localhost = env.socketTextStream("cs-28-86", 8888);

        localhost.print();

        env.execute();

    }
}

复制代码

3.在IDEA中运行程序,然后使用浏览器访问localhost:8081

image.png

web的rest端口号默认是8081,如果想改变端口号,可以在configuration中添加如下配置即可:

Configuration configuration = new Configuration();
configuration.setInteger(“rest.port”, 8082);
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(configuration);

重启后用浏览器访问localhost:8082即可,就可以看到job的运行的信息了!

转自:https://www.cnblogs.com/weiyiming007/p/15850073.html