DataStreamApi简介

Flink的Java和ScalaDataStreamAPI能将可序列化对象转化为流,支持基本类型如String和复合类型如Tuples、POJOs。Flink使用内置序列化器或Kryo处理其他类型。POJO需满足特定条件才能被识别。DataStreamAPI构建作业并在StreamExecutionEnvironment执行,jobgraph由JobManager并行处理。基础源包括数据转换、socket接收和文件读取,sink常用print()方法输出到日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么可以转化为流
flink的java和scala DataStream API可以将任何可序列化的对象转化为流
1、flink自带的序列化器有
基本类型:String、Long、Integer、Boolean、Array
复合类型:Tuples、POJOs 和 Scala case classes
2、并且flink会交给kryo序列化其他类型。也可以将其他序列化器和 Flink 一起使用。特别是有良好支持的 Avro。
POJOS

如果满足以下条件,flink会将数据类型识别为POJO类型(并允许"按名称"字段引用)

  • 公有且独立
  • 有公有的无参构造
  • 类及父类中所有的不被static、transient修饰的属性要么是公有的且不被final修饰,要么包含公有的getter和setter方法
stream执行环境

DataStream API将应用构建为一个job graph,并附加到StreamExcutionEnvironment。当调用 env.execute() 时此 graph 就被打包并发送到 JobManager 上,后者对作业并行处理并将其子任务分发给 Task Manager 来执行。每个作业的并行子任务将在 task slot 中执行。如果没有调用 execute(),应用就不会运行

在这里插入图片描述

基本的stream source
1、数据类型转换
2、socket接收
3、读取文件
基本的stream sink
使用print()方法打印结果到task manager的日志中。会对流中的每个元素都调用toString()方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值