环境准备
- JDK8
- Flink(官网地址:https://flink.apache.org)
可以通过如下命令将Flink命令添加到系统环境变量中
export FLINK_HOME=系统中Flink的目录
export PATH=$FLINK_HOME/bin:$PATH
source ~/.bash_profile
Flink系统架构
- TaskManager:用于处理任务,通常有多个
- JobManager:用于接受来自客户端的任务并分发给TaskManager,在不考虑高可用的情况下通常只有一个
Flink配置文件
flink-conf.yaml(只列出最基本且较重要的属性)
# 该配置用于客户端 client 连接 Flink, 将此设置为 JobManager 运行的主机名和端口(该配置决定WEB的地址和端口)
# 默认为 '0.0.0.0'
rest.address
# 默认为 '8081'
rest.port
# 该配置用于 TaskManager 连接 JobManager, 一般将此设置为 JobManager 运行的主机名(该配置决定TaskManager连接JobManager时的地址和端口)
# 默认为 'localhost'
jobmanager.rpc.address
# 默认为 '6123'
jobmanager.rpc.port
# JobManager(JobMaster / ResourceManager / Dispatcher) 进程的总内存大小
jobmanager.memory.process.size: 1600m
# taskmanager 进程的总内存大小
taskmanager.memory.process.size: 1728m
# taskmanager 提供的 slots 数量
taskmanager.numberOfTaskSlots: 1
# 默认的并行度
parallelism.default: 1
workers
将所有TaskManager的主机名配置到此文件即可(默认是localhost)
启动Flink服务
在Flink目录下运行:./start-cluster.sh即可
检查Flink服务是否正常启动通过:JPS -m命令检查TaskManager和JobManager进程即可
启动服务后:可以通过在浏览器访问localhost:8081端口以可视化的方式查看Flink服务
客户端以命令行方式提交Flink作业
以提交官方提供的实例程序为例:
(1)提交作业
./flink run -c 运行类全路径 运行的包
具体:./flink run -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount ../examples/streaming/SocketWindowWordCount.jar --hostname localhost --port 9527
注:hostname:9527端口是本地启动的nc -lk 9527程序
(2)展示作业
./flink list -a 展示所有已经提交的作业(包括正在运行和已经取消的作业)
(3)取消作业
./flink cancel jobid(jobid可以从通过展示作业命令获取)