flink的算子,Source算子

本文介绍了Apache Flink的执行过程,重点解析了Source算子的使用,包括ExecutionEnvironment的配置,SourceFunction和RichSourceFunction的区别,以及如何从文件、集合、元素、Socket、Kafka和自定义数据源读取数据。同时,文中还提到了设置并行度对数据处理的影响,以及通过Kafka作为数据源的步骤。

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

一.flink算子执行过程

env -> source -> transform -> sink

1.env

根据不同的运行方式采取不同的运行环境

a.批处理

1)运行环境:ExecutionEnvironment

2)所有数据进行整体处理

3)返回的数据类型为:DataSet

b.流处理

1)运行环境:StreamExecutionEnvironment

2)流处理必须添加开启启动执行的语句: env.execute(" ")

3)不管是什么数据源都得按实时流数据进行处理

4)返回的数据类型:DataStream

2.Source算子

SourceFunction:函数

RichSourceFunction:富函数 比SourceFunction方法多,重要的两个方法:open(),close()

读取原数据的算子,创建DataStream,类似spark中的创建算子

处理的数据:文件,集合,元素,socket,kafka,自定义

写代码:主方法里进行创建环境

1)文件

a.不设置并行度的结果,如果不设置并行度,系统默认并行度为电脑的cup核数8

file:5> sensor_6,1547718201,15.40
file:6> sensor_7,1547718202,6.72
file:1> sensor_8,1547718204,12.72
file:4> sensor_1,1547718199,30.80
file:7> sensor_8,1547718203,28.72
file:2> sensor_8,1547718205,6.72

 b.设置并行度    env.setParallelism(1)

file> sensor_1,1547718199,30.80
file> sensor_6,1547718201,15.40
file> sensor_7,1547718202,6.72
file> sensor_8,1547718203,28.72
file> sensor_8,1547718204,12.72
file> sensor_8,1547718205,6.72

 /**
   * 读取文件类型的数据源
   * @param env 运行环境
   * @return 返回元数据
   */
  def source_File(env:StreamExecutionEnvironment) = {
    //用source算子读取原文件
    val dataStream_File:DataStream[String] =  env.readTextFile("D:/linuxResources/data/data_flink/sensor.txt")
    //输出读取到的数据
    dataStream_File.print("file")
  }


  def main(args: Array[String]): Unit = {
    //1.创建实时流处理的环境
    val env:StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
    //设置全局并行度为1
    //输出结果
    //如果不设置并行度&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值