Flink
Flink
-
Flink是一个使用Java语言开发的分布式计算框架
-
有状态的流式计算
-
与Spark不同,Spark使用批处理解决方案解决 结构化数据处理和流式计算(微批处理)
-
Flink设计之初就使用了流式计算的任务调度方式,与Spark类似也支持批处理、结构化处理以及流式计算
-
Flink的编程模型
- 程序入口 ExecutionEnvrimment
- 数据抽象 DataStream / DataSet
- 数据的加载模块 Source
- 数据的输出模块 Sink
- 将数据抽象的转换操作 统称为 Filter
集群搭建
-
Flink集群使用主从架构
- 主: jobmanager
- 从: taskmanager
-
flink-conf.yaml
# 设置主节点启动的机器
jobmanager.rpc.address: host01
# 设置主节点使用的服务端口
jobmanager.rpc.port: 6123
# Slot 插槽
# Spark使用集群的cpu核心数和集群可用内存作为划分任务资源的依据,比如启动Spark任务时可以指定占用2 cpu-core 2G
# Flink将Slot作为每个taskmanager可以启动的最大任务数,如果超过Slot数量,任务需要等待之前任务计算完成
taskmanager.numberOfTaskSlots: 2
# 设置flink任务使用的默认并发度
# 类似Spark中RDD的并发度
parallelism.default: 1
# jobmanager WebUI服务端口
rest.port: 8081
- masters
# 设置jobmanager启动的机器
host01:8081
- workers
# 设置taskmanager启动的机器
host01
host02
host03
- 配置环境变量
echo 'export FLINK_HOME=/opt/flink-1.13.2' >> /etc/profile
echo 'PATH=$FLINK_HOME/bin:$PATH' >> /etc/profile
source /etc/profile