前面章节已经过单机Standalone模式,接下来我们看一下Standalone的集群模式部署。我们以官网部署为例进行说明。
Flink集群由一个 master 节点以及一个或多个 worker 节点构成。
配置前提:
确保在每个节点上安装有以下软件:
Java 1.8.x 或更高版本,
ssh (必须运行 sshd 以执行用于管理 Flink 各组件的脚本)
Flink 需要 master 和所有 worker 节点设置 JAVA_HOME 环境变量,并指向你的 Java 安装目录。可以在 conf/flink-conf.yaml 文件中通过 env.java.home 配置项来设置此变量。
配置 Flink
在解压完文件后,你需要编辑 conf/flink-conf.yaml 文件来为集群配置 Flink。
其中一部分是运行时的参数配置,另一部分是配置集群的主从服务器。
例如我有三台主机:192.168.0.1(master),192.168.0.2(worker),192.168.0.3(worker)
运行时的参数配置:
设置 jobmanager.rpc.address 配置项指向 master 节点。修改flink-conf.yaml配置文件,找到jobmanager.rpc.address,修改为jobmanager.rpc.address: 192.168.0.1
设置 jobmanager.memory.process.size 和 taskmanager.memory.process.size 配置项来定义 Flink 允许在每个节点上分配的最大内存值。
这些值的单位是 MB。
非常重要的配置项
每个 JobManager 的可用内存值(jobmanager.memory.process.size),
每个 TaskManager 的可用内存值 (taskmanager.memory.process.size),
每台机器的可用 CPU 数(taskmanager.numberOfTaskSlots),
集群中所有 CPU 数(parallelism.default)和
临时目录(io.tmp.dirs)
配置集群的主从服务器
提供集群上会被用作为 worker 节点的所有节点列表,也就是运行 TaskManager 的节点。编辑文件 conf/workers 并输入每个 worker 节点的 IP 或主机名。
修改workers文件,每个IP一行:
192.168.0.2
192.168.0.3
配置完成以上两部分,就可以使用命令在master节点使用命令启动集群并提交job了。
基于以上的简单配置,就部署了Standalone模式的集群模式,并且,Standalone模式还支持基于ZooKeeper的HA服务。
例如:配置一个拥有2个JobManagers的Standalone HA 集群
配置:conf/flink-conf.yaml:
开放配置文件中有关ZooKeeper的配置,并做相应修改
high-availability: zookeeper
high-availability.zookeeper.quorum: localhost:2181
high-availability.zookeeper.path.root: /flink high-availability.cluster-id: /cluster_one
high-availability.storageDir: hdfs:///flink/recovery
配置:conf/masters:
localhost:8081 localhost:8082
配置:ZooKeeper server conf/zoo.cfg
server.0=localhost:2888:3888