Flin(二):DataStream API_算子

发布时间 2023-11-09 14:27:50作者: renxiaoren

一、流元素

  Flink的DataStream Api 支持的流元素:

    1、基本类型:例如字符串、整型、布尔型、数组等;

    2、Java元组和POJO类型

    3、Scala元素组和case类;

二、执行环境

  每个Flink应用需要一个执行环境,流处理应用需要StreamExecutionEnvironment,例如:

treamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

           DataStream API调用构成一个数据流附加到执行环境,当调用env.execute()时,数据流将被打包并发送到作业管理器(JobManager),JobManager将作业并行化切片并分发到任务管理器(TaskManager)执行。作业的每个并行切片将在一个任务槽(task slot)中执行。

         注意:调用execute()时应用才真正开始运行。

三、算子

source算子(StreamExecutionEnvironment类的方法)

  • fromElements():从指定元素创建流
  • fromCollection():从指定集合创建流
  • fromSequence():从整数区间创建流
  • readTextFile():读取文本文件,每行作为一个元素
  • socketTextStream():从套接字读取数据,使用指定的分隔符
  • addSource():使用自定义source函数,见DataStream Connectors

转换算子(DataStream及其子类的方法)

  • map():元素一对一映射
  • flatMap():元素一对n映射
  • filter():按指定的条件过滤元素
  • keyBy():按指定的key分组
  • reduce():对已分组的流进行聚合
  • union():合并多个流

sink算子(DataStream及其子类的方法)

  • print():将每个元素打印到标准输出流
  • writeAsText():写入文本文件,每个元素占一行
  • writeAsCsv():写入CSV文件
  • writeToSocket():写入套接字
  • addSink():使用自定义sink函数