全球即时:大数据Flink进阶(十二):Flink本地模式开启WebUI

腾讯云 2023-04-09 22:29:11


(资料图)

​Flink本地模式开启WebUI

在工作中我们一般使用IntelliJ IDEA开发工具进行代码开发,为了能方便快速的调试Flink和了解Flink程序的运行情况,我们希望本地开发工具中运行Flink时能查看到WebUI,这就可以在编写Flink程序时开启本地WebUI。

一、在Flink 项目中添加本地模式 WebUI的依赖

在Flink1.15版本之前根据使用Scala版本在Java Flink项目或Scala Flink项目中添加对应Scala版本的依赖。

  org.apache.flink  flink-runtime-web_${scala.binary.version}  ${flink.version}

在Flink1.15版本之后,无论是Java Flink项目还是Scala Flink项目,添加如下依赖,不需额外依赖Scala版本。

  org.apache.flink  flink-runtime-web  ${flink.version}

二、在代码中启用本地WebUI

Flink Java 代码启动本地WebUI:

Configuration conf = new Configuration();//设置WebUI绑定的本地端口conf.setString(RestOptions.BIND_PORT,"8081");//使用配置StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);

Flink Scala 代码启动本地WebUI:

val configuration = new Configuration()//设置WebUI绑定的本地端口configuration.set(RestOptions.BIND_PORT,"8081")//使用配置val env: StreamExecutionEnvironment = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(configuration)

三、编写完整代码启动并访问WebUI

Java 代码示例:

//1.使用本地模式Configuration conf = new Configuration();//设置WebUI绑定的本地端口conf.setString(RestOptions.BIND_PORT,"8081");//使用配置StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);//2.读取Socket数据DataStreamSource ds = env.socketTextStream("node3", 9999);//3.准备K,V格式数据SingleOutputStreamOperator> tupleDS = ds.flatMap((String line, Collector> out) -> {    String[] words = line.split(",");    for (String word : words) {        out.collect(Tuple2.of(word, 1));    }}).returns(Types.TUPLE(Types.STRING, Types.INT));//4.聚合打印结果tupleDS.keyBy(tp -> tp.f0).sum(1).print();//5.execute触发执行env.execute();

代码运行:

Scala代码示例:

//1.创建本地WebUI环境val configuration = new Configuration()//设置绑定的本地端口configuration.set(RestOptions.BIND_PORT,"80")//第一种设置方式val env: StreamExecutionEnvironment = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(configuration)//2.Scala 流处理导入隐式转换,使用Scala API 时需要隐式转换来推断函数操作后的类型import org.apache.flink.streaming.api.scala._//3.读取Socket数据val linesDS: DataStream[String] = env.socketTextStream("node3", 9999)//4.进行WordCount统计linesDS.flatMap(line=>{line.split(",")})  .map((_,1))  .keyBy(_._1)  .sum(1)  .print()//5.最后使用execute 方法触发执行env.execute()

以上代码启动任意一个都可以通过访问:http://localhost来查看WebUI。

注意:启动代码之前在node3首选启动Socket服务,然后再启动代码。在导入flink-runtime-web依赖之后最好重启开发工具,重新加载对应的依赖包,否则可能执行代码之后访问本地WebUI时出现"{"errors":["Not found: /"]}"错误,访问不到WebUI情况。

x

热门推荐

宝马计划与韩国厂商进行合作 生产固态电池

2022-07

海南推动农贸市场全面落实禁塑 加强违禁塑料制品源头治理

2021-12

柴犬登登拍卖记:动物是如何被司法拍卖的

2021-12

江西:到2025年鄱阳湖区断面水质优良比例达到50%以上

2021-12

西藏森林消防:锻造雪域救援尖兵 打造高海拔山岳救援队伍

2021-12

加强人才融通发展 第10届海峡两岸水利青年工程交流营成功举办

2021-12

四川:空手夺刀救人的“95后”女民警捐献万元奖金传递爱心

2021-12

中国食品名市临沂坚持“三化融合” 争做“食安”守望者

2021-12

上海闵行一幼儿园教职工殴打幼儿 2名涉事人员已被行拘

2021-12

受贿1414万元 江西万载县委原书记胡全顺获刑11年6个月

2021-12

推荐阅读

全球即时:大数据Flink进阶(十二):Flink本地模式开启WebUI

2023-04

吴镇宇《典籍里的中国2》扮演孙思邈 贡献“神仙演技”|环球精选

2023-04

观点:蚕蛹怎么做最好吃 辣子蚕蛹的做法

2023-04

天风策略:科创板的β越来越有利 如果美国消费尽快出清就更好_环球聚焦

2023-04

蒙古国草原火灾蔓延 中蒙边境线明火已被扑灭 前沿资讯

2023-04

环球精选!深圳绿色建筑规模超过1.6亿平方米 居全国前列

2023-04

最新商业地块规划出炉!就在蚌埠这里→

2023-04

谢娜能够取得今天如此棒的成就,看完这些“细节”后你会懂得!-全球热推荐

2023-04

环球观点:负优化可还行?三星S23升级系统续航缩短,网友:多学小米11

2023-04

今年前2个月广州对法国进出口贸易额同比增长17.8%

2023-04