Flink IDE调试显示WebUI

作者: AlienPaul | 来源:发表于2021-04-25 15:30 被阅读0次

    Flink 使用介绍相关文档目录

    Flink 使用介绍相关文档目录

    前言

    开发Flink应用时候大家基本都先在IDE中以单机形式直接运行调试,然后在上集群运行。在集群模式我们是可以访问Flink Web UI的。那么在IDE单机运行的时候是否也可以访问Web UI?默认情况Flink并没有提供这个功能。下面为大家分享如何在IDE调试Flink作业时,支持查看Web UI。

    依赖引入

    打开项目的pom.xml文件,加入:

    <profiles>
        <profile>
            <id>webui</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.flink</groupId>
                    <artifactId>flink-runtime-web_${scala.binary.version}</artifactId>
                    <version>${flink.version}</version>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
    

    这里使用profile方式配置的原因是这个web依赖仅仅在IDE调试运行的时候需要。打包编译放入集群运行时这个依赖是多余的。只需要在本地运行时,勾选启用这个profile即可。

    上面的${scala.binary.version}和${flink.version}请设置对应的property值。

    示例代码

    我们使用一个从Socket读入数据的案例,它可以保持Flink应用常驻运行,我们就可以在运行时打开Web UI了。代码如下:

    import org.apache.flink.configuration.{Configuration, RestOptions}
    import org.apache.flink.streaming.api.scala._
    
    object JobWithWebUI {
      def main(args: Array[String]): Unit = {
        val conf = new Configuration
        conf.setInteger(RestOptions.PORT, 8080)
          
        val env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf)
    
        val stream = env.socketTextStream("127.0.0.1", 9000)
    
        stream.print()
          
        env.execute()
      }
    }
    

    注意这里使用的Configuration为Flink的Configuration,千万别导入成Hadoop的。

    通过conf.setInteger(RestOptions.PORT, 8080)指定Web UI的端口号,例子中为8080端口。

    验证

    打开一个terminal,输入:

    nc -lk 127.0.0.1 9000
    

    开启一个端口。然后运行上述Flink 作业。在浏览器打开127.0.0.1:8080。如果前面配置正确,我们能够成功打开Web UI。

    相关文章

      网友评论

        本文标题:Flink IDE调试显示WebUI

        本文链接:https://www.haomeiwen.com/subject/vemdrltx.html