本文以Flink1.8为例讲解,Flink支持运行与所有的类linux环境,比如linux,mac os x 和cygwin(windows)等等。
部署前准备
- 需要jdk1.8或者更改版本,并设置JAVA_HOME
- 主机之间需要配置ssh免密码
官网案例
部署
1.下载安装包
wget https://www-eu.apache.org/dist/flink/flink-1.8.0/flink-1.8.0-bin-scala_2.11.tgz
tar -zxvf flink-1.8.0-bin-scala_2.11.tgz -C .
2.配置flink-conf.yaml
vi conf/flink-conf.yaml
#################################################################
jobmanager.rpc.address: server1
jobmanager.heap.size: 2048m
taskmanager.heap.size: 2048m
taskmanager.numberOfTaskSlots: 3
parallelism.default: 2
#################################################################
参数说明:
- jobmanager.rpc.address :jobmanager地址
- jobmanager.heap.mb:jobmanager的堆内存
- taskmanager.heap.mb:taskmanager的堆内存
- taskmanager.numberOfTaskSlots:每个机器slots的数量,一般设置为cpu数或者cpu数的整数倍
- parallelism.default :任务启动的时候的默认并行度,是全局配置
- 对于个别taskmanager机子内存大小不一的情况,可以通过在环境变量设置FLINK_TM_HEAP来调节,充分利用内存
3.配置slaves
server1
server2
server3
4.分发安装包
scp -r flink server2:/opt/
scp -r flink server3:/opt/
5.启动
sh /opt/flink/bin/start-cluster.sh
额外需求
上面的启动方式主要是从零启动一个正常的集群,那么很多时候我们会给集群添加机器,这个时候怎么办呢?Flink提供了两个脚本。
1.增加一个JobManager
bin/jobmanager.sh ((start|start-foreground) [host] [webui-port])|stop|stop-all
2.增加一个TaskManager
bin/taskmanager.sh (start|start-foreground|stop|stop-all)
在实际生产环境中,standalone模式用的并不多,主要还是Flink on yarn模式,后续会介绍!