四、Flink的API
Flink中的基本操作可以用简单的术语进行表述
Flink连接到数据源,然后执行业务逻辑相关操作
最后将结果输出到sink
Flink可以处理两种形式的数据(实时,批量)
所以其有两种api
DataStream API:实时数据流分析,JAVA和scala语言可以调用
DataSet API:批量数据处理,Java,scala,python可以调用该api
1、DataStreamAPI
范例:
首先获取StreamExecutionEnvironment对象
从适当的数据源加载初始数据
对加载后的数据做一下转换
确定转换后数据的存储目的地
触发程序执行
2、DataSet api
首先获取ExecutionEnvironment对象
加载数据
对加载的数据进行转换操作
写入转换好的数据
触发程序执行
3、Flink领域相关库
Gelly(Graph库):可处理图数据库数据
FlinkMl(机器学习库):借鉴scikit-learn的流水线风格的处理机制
FlinkCEP(复杂事件处理库):允许用户对数据流中的事件模式进行处理来解决复杂问题
五、Flink运行范例
暂不做介绍,请查看官方文档
六、适合使用Flink的场景
用户需要高性能
用户需要用到机器学习
用户的案例中需要用到图处理
用户需要有一致性保障前提下的高吞吐率
用户对每条消息只需要处理一次时
用户希望避免手动处理内存
用户需要对中间结果进行处理
用户需要较少的配置
用户需要使用同一套框架处理流式和批量数据
用户需要不同的部署选项
七、不适合使用Flink的场景
需要一个成熟的框架
需要支持java,scala之外的编程语言api
八、其他选项
1、spark
2、storm
3、Tez