Flink 1.9.3 搭建

2、Flink 搭建

  • 虚拟机的CPU核数尽量调成2个

2.1、Standalone 模式

节点名称JobManagerTaskManager
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个数。
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值