Flink流处理测试
Flink流处理测试
package com.shujia.flink.core
import org.apache.flink.streaming.api.scala._
object Demo1WordCount {
def main(args: Array[String]): Unit = {
/**
* 1、创建flink的运行环境
* 这是flink程序的入口
*/
val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
/**
* 2、读取数据
* DataStream相当于spark中的DStream
*/
val linesDS: DataStream[String] = env.socketTextStream("master", 8888)
/**
* 3、开启socket
* 在虚拟机中输入 nc -lk 8888 回车
*/
//先不做处理,直接打印处理
//流处理不能使用foreach循环打印
linesDS.print()
/**
* 4、启动flink程序(运行该代码)
*/
env.execute("wordcount")//给该程序起个名字
}
}
步骤:
- 1、创建flink的运行环境
- 2、读取数据
- 3、返回虚拟机中,输入
nc -lk 8888
回车 - 4、编写启动flink程序的代码,然后运行整个代码
回到虚拟机中,输入一些数据,在IDEA中会对应生成;
因为我的电脑性能-逻辑处理器是4,所以在IDEA中的输出结果并行度
编号有4种
Flink处理WordCount时,想要打印日志
(1)增加依赖
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency>
(2)在IDEA的
resources
目录中增加一个配置文件log4j2.properties
(3)重新运行代码
默认并行度
是计算机核心数(逻辑处理器)有关,我们通过代码可以自定义并行度
//在读取数据之前设置并行度
env.setParallelism(2)
重新执行代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!