2、Flink 搭建
这里目录
- 虚拟机的CPU核数尽量调成2个
2.1、Standalone 模式
节点名称 | JobManager | TaskManager |
---|---|---|
node01 | * | * |
node02 | * | |
node03 | * |
2.1.1. 下载上传解压拷贝
-
https://archive.apache.org/dist/flink/flink-1.9.3/ 下载: flink-1.9.3-bin-scala_2.12.tgz
-
[root@node01 ~]# tar -zxvf flink-1.9.3-bin-scala_2.12.tgz [root@node01 ~]# mv flink-1.9.3 /opt/yjx/ [root@node01 ~]# rm -rf flink-1.9.3-bin-scala_2.12.tgz [root@node01 ~]# cd /opt/yjx/flink-1.9.3/
2.1.2. 修改配置文件
[root@node01 flink-1.9.3]# vim conf/flink-conf.yaml
-
# JobManager runs. jobmanager.rpc.address: node01 # The RPC port where the JobManager is reachable. jobmanager.rpc.port: 6123 # The heap size for the JobManager JVM jobmanager.heap.size: 1024m # The heap size for the TaskManager JVM taskmanager.heap.size: 1024m # The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline. taskmanager.numberOfTaskSlots: 2 # The parallelism used for programs that did not specify and other parallelism. parallelism.default: 1
[root@node01 flink-1.9.3]# vim conf/masters
-
node01:8081
[root@node01 flink-1.9.3]# vim conf/slaves
-
node01 node02 node03
2.1.3. 拷贝到其他节点
[root@node02 ~]# scp -r root@node01:/opt/yjx/flink-1.9.3 /opt/yjx/
[root@node03 ~]# scp -r root@node01:/opt/yjx/flink-1.9.3 /opt/yjx/
2.1.4. 修改环境变量
[123 ~]# vim /etc/profile
//添加环境变量
--------------------------------------------
export FLINK_HOME=/opt/bdp/flink-1.9.3
export PATH=$FLINK_HOME/bin:$PATH
--------------------------------------------
[node01-02-03 ~]# source /etc/profile
2.1.5. 启动集群
-
[root@node01 ~]# start-cluster.sh
-
页面访问 http://192.168.88.101:8081
2.1.6 关机拍照
stop-cluster.sh
shutdown -h now
2.1.7 部署任务(Web UI)
-
首先安装一个Linux版本的NC
-
yum install nc -y nc -l -k -p 18880
-
-
创建一个WordCount项目打成Jar包
- 通过Web UI 上传任务
2.1.8. 部署任务(命令行模式)
-
创建一个WordCount项目打成Jar包
-
将项目上传到Linux服务器的JobManager节点
-
执行命令
-
flink run -c com.xxxx.WordCount -p 2 /root/flink_wordcount-1.0-SNAPSHOT.jar
-
run [OPTIONS] <jar-file> <arguments> run操作参数: -c,--class <classname> 如果没有在jar包中指定入口类,则需要在这里通过这个参 数指定 -m,--jobmanager <host:port> 指定需要连接的jobmanager(主节点)地址 -p,--parallelism <parallelism> 指定程序的并行度。可以覆盖配置文件中的默认 值。
-
2.2、Flink on Yarn 模式
2.2.1. 配置
-
[123 ~ ]# vim /etc/profile
-
export HADOOP_CONF_DIR=/opt/yjx/hadoop-3.1.2/etc/hadoop/
-
[root@node01-02-03 ~]# source /etc/profile
-
-
拷贝Flink依赖Hadoop的Jar包
-
[root@node01 ~ ]# mv flink-shaded-hadoop-2-uber-3.1.1-7.0.jar /opt/yjx/flink-1.9.3/lib/
-
-
拷贝到其他节点
-
[root@node01 ~]# scp /opt/yjx/flink-1.9.3/lib/flink-shaded-hadoop-2-uber-3.1.1-7.0.jar root@node02:/opt/yjx/flink-1.9.3/lib/ [root@node01 ~]# scp /opt/yjx/flink-1.9.3/lib/flink-shaded-hadoop-2-uber-3.1.1-7.0.jar root@node03:/opt/yjx/flink-1.9.3/lib/
-
-
关机拍照
shutdown -h now
2.2.2. Yarn-Session模式
-
该模式是预先在yarn上面划分一部分资源给flink集群用,flink提交的所有任务,共用这些资源。
-
启动yarn-session并分配的资源。命令:
-
yarn-session.sh -n 3 -jm 1024 -tm 1024 -n 指明container容器个数,即 taskmanager的进程个数。 -jm 指明jobmanager进程的内存大小 -tm 指明每个taskmanager的进程内存大小
-
-
提交任务
-
flink run -c com.xxxx.WordCount -p 2 -m node01:35073 /root/flink_wordcount-1.0-SNAPSHOT.jar
-
-
停止yarn上的flink集群:
-
yarn application -kill application_id yarn application -kill application_1621409300158_0001
-
2.2.3. Single-job模式
-
该模式是每次提交任务,都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管理。 任务执行完成之后,flink集群也会消失。
-
任务提交命令:
-
flink run -m yarn-cluster -yn 2 -c com.xxxx.WordCount -p 2 /root/flink_wordcount-1.0-SNAPSHOT.jar -m: 后面跟的是yarn-cluster,不需要指明地址。这是由于Single job模式是每次提交 任务会新建flink集群,所以它的jobmanager是不固定的 -yn: 指明taskmanager个数。
-