尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

SCAU期末笔记 - 实时计算框架章末实验

SCAU期末笔记 - 实时计算框架章末实验
📅 发布时间:2026/6/19 17:13:00


代码题会是什么东西好慌 先把章末习题总结一波看看实力

实验一 Flink集群安装和初步使用

是的期末了我连环境都还没配 懒得配Linux了 用Maven速成一下子 以下为模拟环境配置速成教程
安装JDK1.8 安装Jetbrain IDEA 新建项目这样点

然后里面这样填再然后点创建

再然后pom.xml文件改成下面这样 改完右上角有个小按钮点一下自动下载一下依赖就行了

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- 项目基本信息 --><groupId>com.example</groupId><artifactId>flink-demo</artifactId><version>1.0-SNAPSHOT</version><!-- 核心配置:JDK版本、Flink版本、Scala版本(确保依赖匹配) --><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><flink.version>1.14.5</flink.version><!-- 已验证依赖存在的稳定版本 --><scala.binary.version>2.12</scala.binary.version><!-- 与Flink 1.14.5匹配的Scala版本 --><slf4j.version>1.7.36</slf4j.version><!-- 日志依赖版本(兼容Flink) --></properties><dependencies><!-- 1. Flink流处理核心依赖(必须) --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java_${scala.binary.version}</artifactId><version>${flink.version}</version></dependency><!-- 2. Flink WebUI依赖(免安装可视化核心,已验证存在) --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-runtime-web_${scala.binary.version}</artifactId><version>${flink.version}</version></dependency><!-- 3. 日志依赖(避免运行时报日志相关错误) --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency></dependencies><!-- 打包插件(可选,后续需要打包运行时可用) --><build><plugins><!-- Maven编译插件(确保用JDK 1.8编译) --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>${maven.compiler.source}</source><target>${maven.compiler.target}</target><encoding>UTF-8</encoding></configuration></plugin><!-- Shade插件(打包时包含所有依赖,避免运行时缺包) --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><artifactSet><excludes><exclude>org.apache.flink:flink-shaded-force-shading</exclude></excludes></artifactSet><transformers><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.example.FlinkHelloWorld</mainClass><!-- 你的主类全路径 --></transformer></transformers></configuration></execution></executions></plugin></plugins></build></project>

实验二 使用多种算子完成Flink文本处理实验

因为我们没虚拟机所以要先配nc模拟流数据输入 下载这个然后配环境变量 之后流输入的内容我们就开个cmd然后输入nc -lk 7777之后需要传入什么数据直接继续往cmd后面输入就行了
然后直接写 运行 胜利结算

packageorg.example;importorg.apache.flink.api.common.functions.FilterFunction;importorg.apache.flink.api.common.functions.ReduceFunction;importorg.apache.flink.api.java.functions.KeySelector;importorg.apache.flink.streaming.api.datastream.KeyedStream;importorg.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;importorg.apache.flink.api.common.functions.FlatMapFunction;importorg.apache.flink.api.common.functions.MapFunction;importorg.apache.flink.api.java.tuple.Tuple2;importorg.apache.flink.streaming.api.datastream.DataStream;importorg.apache.flink.util.Collector;publicclassWordCountJob{publicstaticvoidmain(String[]args)throwsException{// 设置Flink执行环境finalStreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();// 创建一个socket数据源DataStream<String>text=env.socketTextStream("localhost",7777);// 将文本转换为小写DataStream<String>words=text.map(newMapFunction<String,String>(){@OverridepublicStringmap(Stringvalue)throwsException{returnvalue.toLowerCase();}});// 分割单词并为每个单词附加一个计数器为1的TupleSingleOutputStreamOperator<Tuple2<String,Integer>>wordAndOne=words.flatMap(newFlatMapFunction<String,Tuple2<String,Integer>>(){@OverridepublicvoidflatMap(Stringvalue,Collector<Tuple2<String,Integer>>out)throwsException{String[]words=value.split(" ");for(Stringword:words){Tuple2<String,Integer>wordsAndOne=Tuple2.of(word,1);out.collect(wordsAndOne);}}});// 过滤包含字母"a"的单词wordAndOne=wordAndOne.filter(newFilterFunction<Tuple2<String,Integer>>(){@Overridepublicbooleanfilter(Tuple2<String,Integer>stringIntegerTuple2)throwsException{returnstringIntegerTuple2.f0.contains("a");}});// 按单词进行分组,创建一个KeyedStreamKeyedStream<Tuple2<String,Integer>,String>wordAndOneKS=wordAndOne.keyBy(newKeySelector<Tuple2<String,Integer>,String>(){@OverridepublicStringgetKey(Tuple2<String,Integer>value)throwsException{returnvalue.f0;}});// 对每个单词的计数进行累加SingleOutputStreamOperator<Tuple2<String,Integer>>sumDS=wordAndOneKS.reduce(newReduceFunction<Tuple2<String,Integer>>(){@OverridepublicTuple2<String,Integer>reduce(Tuple2<String,Integer>value1,Tuple2<String,Integer>value2)throwsException{Stringword=value1.f0;intcount=value1.f1+value2.f1;returnTuple2.of(word,count);}});// 打印结果sumDS.print();// 执行任务env.execute("WordCountFlinkJob");}}

相关新闻

  • 问卷还在手动搭?5 款 AI 问卷工具实测:有的只敢出题,有的能一键生成 “可写进论文” 的完整调研方案!
  • 2025年八字起名公司推荐:2025年权威起名机构榜单深度解析 - 品牌推荐
  • 2025年女孩取名机构推荐:权威评测榜单TOP5深度解析 - 十大品牌推荐

最新新闻

  • 昆明全品类贵金属回收指南,金价实时更新,线下靠谱门店汇总清单 - 奢侈品回收评测
  • 沪上贵金属变现干货汇总:2026 五大黄金回收连锁门店全维度评测 - 奢侈品回收测评
  • 从零开发Java面试刷题作战APP:架构重构、模块闭环、技术栈选型全方案
  • 洪湖上门回收黄金哪家放心 2026大盘行情与避坑全攻略 - 润富黄金回收
  • 曲靖哪里回收黄金靠谱 2026六月实测三家实体门店无套路 - 润富黄金回收
  • 2026苏州黄金回收门店梯队测评,个人闲置黄金变现优选与避雷完整指南 - 奢侈品交易观察员

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号