Flink 集群部署

Flink 集群部署

Flink 集群部署分类

根据以下两种条件将集群部署模式分为三种类型:

1、集群的生命周期和资源隔离;

2、根据程序main()方法执行在Client 还是JobManager

  • Session Mode
    • 共享JobManager 和TaskManager,所有提交的Job都在一个Runtime中运行
  • Pre-Job Mode
    • 独享JobManager 和TaskManager,好比为每个Job单独启动一个Runtime
  • Application Mode (1.11版本提出)
    • Application的main()运行在Cluster上,而不在客户端
    • 每个Application对应一个Runtime,Application中可以包含有多个Job

Flink支持资源管理器

  • Standalone
  • Hadoop Yarn
  • Apache Mesos
  • Docker
  • Kubernetes
Cluster ManagementSession 模式Pre-Job模式Application 模式Native 模式是否生产可用是否支持高可用国内接受度
Local支持不支持不支持不支持不支持
Standalone支持不支持不支持不支持支持
Yarn支持支持支持支持支持
Mesos支持支持不支持支持支持
Docker支持支持不支持不支持不支持
Kubernetes支持支持支持支持支持

Standalone

单机

https://flink.apache.org/downloads.html

wget https://dlcdn.apache.org/flink/flink-1.16.0/flink-1.16.0-bin-scala_2.12.tgz
tar -zxvf flink-1.16.0-bin-scala_2.12.tgz
cd flink-1.16.0 & ./bin/start-cluster.sh

多机

修改 conf/flink-conf.yaml:
high-availability: zookeeper
high-availability.zookeeper.quorum: node01:2181,node02:2181,node03:2181,node04:2181,node05:2181 
high-availability.zookeeper.path.root: /flink 
#high-availability.cluster-id: /cluster_one # important: customize per cluster 
high-availability.storageDir: hdfs:///flink/recovery
配置 conf/masters:
localhost:8081 
localhost:8082
配置 conf/zoo.cfg(可选):
server.0=localhost:2888:3888
启动 HA 集群
$ bin/start-cluster.sh 
Starting HA cluster with 2 masters and 1 peers in ZooKeeper quorum. 
Starting standalonesession daemon on host localhost. 
Starting standalonesession daemon on host localhost. 
Starting taskexecutor daemon on host localhost.

Yarn

Session 集群启动:

./bin/yarn-session.sh -jm 1024m -tm 4096m

Job 集群启动:

./bin/flink run -m yarn-cluster -p 4 -yjm 1024m -ytm 4096m ./examples/batch/WordCout.jar

Application Mode集群启动:

./bin/flink run-application -t yarn-application \
-Djobmanager.memory.process.size=2048m \
-Dtaskmanager.memory.process.size=4096m \
-Dyarn.provided.lib.dirs="hdfs://node02:8020/flink-training/flink-1.16.0" \
./MyApplication.jar
### Flink 集群部署步骤 Apache Flink 是一个强大的分布式流处理和批处理框架,其集群部署可以基于多种资源管理器,如 Standalone、Hadoop YARN、Kubernetes 等。其中,Standalone 模式是 Flink 自带的轻量级集群部署方式,适用于测试和小规模生产环境。以下是基于 Standalone 模式的 Flink 集群部署步骤: #### 1. 环境准备 在部署 Flink 集群之前,需要确保以下几点: - 所有节点安装 Java 8 或更高版本。 - 配置好 SSH 免密登录,确保主节点可以无密码访问所有从节点。 - 安装包版本统一,例如 `flink-1.17.0-bin-scala_2.12.tgz`。 #### 2. 下载并解压安装包 将 Flink 安装包解压到指定目录,例如 `/export/server/`: ```bash tar -zxf flink-1.17.0-bin-scala_2.12.tgz -C /export/server/ cd /export/server/ mv flink-1.17.0/ flink ``` #### 3. 修改集群配置文件 进入 Flink 的 `conf` 目录,修改 `flink-conf.yaml` 文件,配置 JobManager 和 TaskManager 的相关参数: ```yaml jobmanager.rpc.address: node1 jobmanager.bind-host: 0.0.0.0 rest.address: node1 rest.bind-address: 0.0.0.0 taskmanager.bind-host: 0.0.0.0 taskmanager.host: node1 ``` 同时,修改 `workers` 文件,指定所有 TaskManager 节点: ``` node1 node2 node3 ``` 修改 `masters` 文件,指定高可用模式下的主节点: ``` node1:8081 ``` #### 4. 分发安装目录 将配置好的 Flink 安装目录分发到所有节点: ```bash cd /export/server/ scp -r flink node2:`pwd`/ scp -r flink node3:`pwd`/ ``` #### 5. 修改其余节点配置文件 在每个节点上修改 `flink-conf.yaml` 文件中的 `taskmanager.host` 参数,使其对应当前节点的主机名: - 在 node2 上设置: ```yaml taskmanager.host: node2 ``` - 在 node3 上设置: ```yaml taskmanager.host: node3 ``` #### 6. 启动集群 在主节点上执行以下命令启动 Flink 集群: ```bash cd /export/server/flink ./bin/start-cluster.sh ``` 该命令会启动 JobManager 和所有 TaskManager 节点上的服务。 #### 7. 验证集群状态 可以通过访问 Flink Web UI 来验证集群是否正常运行,默认地址为: ``` http://node1:8081 ``` 在该页面上可以看到当前集群的运行状态、任务信息等。 ### 集群部署模式对比 Flink 提供了多种集群部署模式,适用于不同的应用场景和资源管理需求: - **Standalone 模式**:适合测试和小规模部署,资源调度由 Flink 自身管理。 - **Hadoop YARN 模式**:适合企业级大规模部署,资源调度由 YARN 管理,能够与其他 Hadoop 生态系统组件无缝集成。 - **Kubernetes 模式**:适合云原生环境,支持弹性伸缩和高可用性[^2]。 ### 注意事项 - 确保所有节点的系统时间同步,可以使用 NTP 服务进行时间同步。 - 根据实际硬件资源调整 `taskmanager.numberOfTaskSlots` 等参数,以优化性能。 - 在生产环境中,建议启用高可用模式(HA),防止 JobManager 单点故障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值