AmosCloud

Library

Have a Question?

If you have any question you can ask below or enter what you are looking for!

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