Flink入门 (二)--Flink程序的编写

其他案例demo可以参考我的GitHub

https://github.com/NuistGeorgeYoung/flink_stream_test/
 

编写一个Flink程序大致上可以分为以下几个步骤:

  • 获得一个execution environment, env

val env = StreamExecutionEnvironment.getExecutionEnvironment

 之后你可以设置以下配置

  1. 并行度(Parallelism)

    • 设置作业的并行度,即操作符(operator)的并行实例数。这可以通过env.setParallelism(int parallelism)来设置。
  2. 执行模式(Execution Mode)

    • Flink支持两种执行模式:本地执行(LOCAL)和集群执行(CLUSTER)。虽然getExecutionEnvironment默认可能根据你的环境选择执行模式,但在某些情况下你可能需要显式设置。不过,通常这不是通过StreamExecutionEnvironment直接设置的,而是通过配置文件或命令行参数来控制的。
  3. 时间特性(Time Characteristics)

    • Flink支持处理时间(Processing Time)、事件时间(Event Time)和摄入时间(Ingestion Time)。你可以通过env.setStreamTimeCharacteristic(TimeCharacteristic timeCharacteristic)来设置时间特性。
  4. 状态后端(State Backend)

    • 状态后端用于存储和管理Flink作业的状态。你可以通过env.setStateBackend(StateBackend backend)来设置状态后端。常见的状态后端包括FsStateBackend(基于文件系统的状态后端)和RocksDBStateBackend(基于RocksDB的状态后端)。
  5. 检查点(Checkpointing)

    • Flink的容错机制依赖于检查点(Checkpointing)。你可以通过env.enableCheckpointing(long interval)来启用检查点,并通过一系列其他方法来配置检查点的具体行为,如setCheckpointingModesetCheckpointTimeout等。
  6. 重启策略(Restart Strategies)

    • Flink允许你配置作业在遇到故障时的重启策略。你可以通过env.setRestartStrategy方法来设置重启策略,比如固定延迟重启、失败率重启等。
  7. 任务槽(Task Slots)和资源(Resources)

    • 这些配置通常不是通过StreamExecutionEnvironment直接设置的,而是通过Flink的配置文件(如flink-conf.yaml)或提交作业时的命令行参数来配置的。它们涉及到Flink集群的资源分配和任务调度。

       

基于集合

通用方法

  • 加载/创建初始数据, source

  • 数据集包括但不限于以下这几种
  • 基于文件

  • readTextFile(path)/ TextInputFormat- 按行读取文件并将其作为字符串返回。

  • readTextFileWithValue(path)/ TextValueInputFormat- 按行读取文件并将它们作为StringValues返回。StringValues是可变字符串。

  • readCsvFile(path)/ CsvInputFormat- 解析逗号(或其他字符)分隔字段的文件。返回元组或POJO的DataSet。支持基本java类型及其Value对应作为字段类型。

  • readFileOfPrimitives(path, Class)/ PrimitiveInputFormat- 解析新行(或其他字符序列)分隔的原始数据类型(如String或)的文件Integer。

  • readFileOfPrimitives(path, delimiter, Class)/ PrimitiveInputFormat- 解析新行(或其他字符序列)分隔的原始数据类型的文件,例如String或Integer使用给定的分隔符。

  • readSequenceFile(Key, Value, path

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值