大数据Flink进阶(十二):Flink本地模式开启WebUI_环球头条


(资料图片仅供参考)

​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情况。

标签:

最近更新

大数据Flink进阶(十二):Flink本地模式开启WebUI_环球头条
2023-04-10 02:12:14
山东即墨:“口袋公园”乐享春光
2023-04-09 21:51:03
今日热搜:Vivo X翻转动手图片让您先睹为快其设计和功能
2023-04-09 19:53:15
每日头条!法尔胜: 第十届监事会第十六次会议决议公告
2023-04-09 18:09:34
全球微动态丨全流程服务 政策找企“更快更准” 护航高新企业转型升级
2023-04-09 16:59:21
C轮融资7.5亿,能挽救长沙唯一的新能源车企吗?
2023-04-09 15:10:09
chatGPT百宝盒?圈内人士摇头!千年后chatGPT无法替代的三大职业
2023-04-09 12:46:37
为什么舍不得丽江,因为有一种生活叫云南 世界信息
2023-04-09 11:09:44
一往无前!快船撞翻开拓者重升西部第五,威少开抡,小卡兜底 天天观天下
2023-04-09 09:26:51
浮标“达人”出圈!临湘市首届“工匠杯”浮标制作技能大赛总决赛开赛
2023-04-09 07:35:19
女人,永远不要想着去靠任何人
2023-04-09 04:38:37
到这个国家娶老婆,生个孩子奖励60万,为何当地人却都不想要
2023-04-08 22:44:54
兔宝宝小名大全2023洋气_女生小名
2023-04-08 20:44:46
谢强:紫砂跟黄金结合具有较大市场前景 天天热消息
2023-04-08 18:47:45
【天天报资讯】熟练的反义词是什么_熟练的反义词
2023-04-08 17:02:40
2023年4月原神角色培养优先级推荐/培养参考一图流【猫冬版】_当前消息
2023-04-08 14:58:50
【天天播资讯】免费接驳线 免税购物专线……海口全力保障消博会期间公众出行需求
2023-04-08 13:02:58
定制礼品注意什么好
2023-04-08 12:26:08
一式两份是什么意思(一式两份是什么意思啊)|全球最资讯
2023-04-08 11:29:43
环球今热点:《死侍》女主演:新作或“复活” 正在讨论参演条款
2023-04-08 10:04:39
简讯:婚庆礼品袋套装
2023-04-08 09:19:40
米兰一年开几次花 米兰哪时候开花呢
2023-04-08 08:39:39
观速讯丨工人的画(第1741期)
2023-04-08 06:30:55
五笔口诀顺口溜朗读_五笔口诀顺口溜 精彩看点
2023-04-08 03:42:19
世界视讯!重庆百货2022年净利降7.16%至8.83亿元 | 年报快讯
2023-04-07 22:49:39
running man在线观看2023最新一期_running man 2016 天天快报
2023-04-07 20:59:13
导游证怎么考四川_导游证怎么考 当前讯息
2023-04-07 19:51:53
创新新材:2022年净利10.89亿元 同比增25%_观速讯
2023-04-07 18:39:05
抖音直播间里,找不到丹阳眼镜|环球新动态
2023-04-07 17:50:04
女子与父亲闹矛盾欲离家 民警暖心劝慰解心结
2023-04-07 17:01:39