Apache Flink运行环境搭建
172.18.12.85 flink01 ##master节点,jobManager
172.18.12.86 flink02 ##worker节点,taskmanager
172.18.12.87 flink03 ##worker节点,taskmanager
一、每台机器上配置好 Java 以及 JAVA_HOME 环境变量
1.首先下载对应系统的JDK压缩包,然后解压压缩包
> tar -zvxf jdk-7u79-linux-x64.gz
2.移动解压的文件到应用存放目录
> mv jdk1.7.0_79 /usr/appdata
3.编辑/etc/profile,增加环境变量
> vi + /etc/profile
JAVA_HOME=/usr/appdata/jdk1.7.0_79
JRE_HOME=/usr/appdata/jdk1.7.0_79/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
4.让/etc/profile文件修改后立即生效
> source /etc/profile
5.显示PATH环境变量,检验修改后的结果
> echo $PATH
printenv
6.验证JDK安装完成,显示版本号
> java -version
二、host配置
1.最后一行加上修改后的IP地址及对应的主机名:
> cat >> /etc/hosts << EOF
172.18.12.85 flink01
172.18.12.86 flink02
172.18.12.87 flink03
EOF
2.修改为对应的主机名:
> vi /etc/hostname
修改为flink01[flink02/flink03]
3.重启虚拟机
> reboot
三、每台机器上部署的 Flink binary 的目录要保证是同一个目录
1.首先下载对应系统的Flink压缩包,然后解压压缩包
> tar -zvxf flink-1.13.6-bin-scala_2.11.tgz
2.移动解压的文件到应用存放目录
> mv flink-1.13.6 /flink
3.修改 conf/masters 和 conf/slaves 配置,修改 conf/flink-conf.yaml 配置,注意要确保和 Masters 文件中的地址一致:
> cd /flink/flink-1.13.6/conf
1).配置flink-conf.yaml文件
> vi flink-conf.yaml
jobmanager.rpc.address: flink01
jobmanager.rpc.port: 6123
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 2048m
taskmanager.numberOfTaskSlots: 12
rest.bind-address: 0.0.0.0
rest.port: 8081
# JobManager地址,master节点
jobmanager.rpc.address: node01
# JobManagerRPC通信端口(默认不改变)
jobmanager.rpc.port: 6123
# Total size of the JobManager (JobMaster / ResourceManager / Dispatcher) process。These values are configured as memory sizes, for example 1536m or 2g
jobmanager.memory.process.size: 1024m
# Total size of the TaskManager process。These values are configured as memory sizes, for example 1536m or 2g
taskmanager.memory.process.size: 1024m
# 每个TaskManager 提供的任务 slots 数量大小,它的意思是当前task能够同时执行的线程数量 (实际生产环境建议是CPU核心-1)
# TaskManager管理的TaskSlot个数,依据当前物理机的核心数来配置,一般预留出一部分核心(25%)给系统及其他进程使用,一个slot对应一个core。
# 如果core支持超线程,那么slot个数*2。供参考:cat /proc/cpuinfo|grep "processor"
# The number of slots that a TaskManager offers (default: 1). Each slot can take one task or pipeline
taskmanager.numberOfTaskSlots: 12
# 指定WebUI的访问端口(console控制台与微服务调用时访问的端口)
rest.port: 8081
注意:
flink01 jobmanager.rpc.address都为flink01
flink02 jobmanager.rpc.address都为flink01
flink03 jobmanager.rpc.address都为flink01
2).配置masters文件
flink01\flink02\flink03节点均修将localhost改为:
> vi masters
flink01:8081
3).配置workers文件
flink01\flink02\flink03节点均将localhost修改为:
> vi workers
flink02
flink03
4. 启动 Flink 集群:
登录flink01(master 节点)
> cd /flink/flink-1.13.6/bin
> ./jobmanager.sh start
登录flink02,flink03(worker 节点)
> cd /flink/flink-1.13.6/bin
> ./taskmanager.sh start
5. 提交 WordCount 作业:
登录flink01(master 节点)
> cd /flink/flink-1.13.6/bin
> ./flink run examples/streaming/WordCount.jar
> ./flink run --detached ./examples/streaming/StateMachineExample.jar ##Submitting the job using --detached will make the command return after the submission is done.
6. Job Monitoring
# You can monitor any running jobs using the list action:
> ./bin/flink list
7. Terminating a Job
# Stopping a Job Gracefully Creating a Final Savepoint
> ./bin/flink stop --savepointPath /tmp/flink-savepoints $JOB_ID
8.Starting a Job from a Savepoint
> ./bin/flink run --detached --fromSavepoint /tmp/flink-savepoints/savepoint-cca7bc-bb1e257f0dab ./examples/streaming/StateMachineExample.jar
