Flink入门 (二)--Flink步伐的编写

[复制链接]
发表于 2026-2-10 13:38:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
其他案例demo可以参考我的GitHub
https://github.com/NuistGeorgeYoung/flink_stream_test/
  
编写一个Flink步伐大抵上可以分为以下几个步调:

      
  • 得到一个execution environment, env
  1. val env = StreamExecutionEnvironment.getExecutionEnvironment
复制代码
之后你可以设置以下设置
      
  • 并行度(Parallelism)
         
    • 设置作业的并行度,即利用符(operator)的并行实例数。这可以通过env.setParallelism(int parallelism)来设置。   
      
  • 实行模式(Execution Mode)
         
    • Flink支持两种实行模式:本地实行(LOCAL)和集群实行(CLUSTER)。固然getExecutionEnvironment默认大概根据你的环境选择实行模式,但在某些环境下你大概必要显式设置。不外,通常这不是通过StreamExecutionEnvironment直接设置的,而是通过设置文件或下令行参数来控制的。   
      
  • 时间特性(Time Characteristics)
         
    • Flink支持处理处罚时间(Processing Time)、变乱时间(Event Time)和摄入时间(Ingestion Time)。你可以通过env.setStreamTimeCharacteristic(TimeCharacteristic timeCharacteristic)来设置时间特性。   
      
  • 状态后端(State Backend)
         
    • 状态后端用于存储和管理Flink作业的状态。你可以通过env.setStateBackend(StateBackend backend)来设置状态后端。常见的状态后端包罗FsStateBackend(基于文件体系的状态后端)和RocksDBStateBackend(基于RocksDB的状态后端)。   
      
  • 查抄点(Checkpointing)
         
    • Flink的容错机制依靠于查抄点(Checkpointing)。你可以通过env.enableCheckpointing(long interval)来启用查抄点,并通过一系列其他方法来设置查抄点的详细活动,如setCheckpointingMode、setCheckpointTimeout等。   
      
  • 重启计谋(Restart Strategies)
         
    • Flink答应你设置作业在遇到故障时的重启计谋。你可以通过env.setRestartStrategy方法来设置重启计谋,比如固定延长重启、失败率重启等。   
      
  • 使命槽(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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表