flink 1.15.1集群安装部署及测试

flink 1.15.1集群安装部署

集群规划

节点 服务
lsyk01 master
lsyk02 worker
lsyk03 worker
lsyk04 worker

环境

​ java 11.0.15.1

​ hadoop:3.3.3

​ rhel:7.8

安装

  1. 解压安装

    tar -xvf flink-1.15.1-bin-scala_2.12.tgz -C /opt
    
    # 创建目录
    mkdir -p /opt/flink-1.15.1/tmp
    mkdir -p /opt/flink-1.15.1/pids
    mkdir -p /opt/flink-1.15.1/usrlib
    
    

standalone部署

  1. 配置maseters、works

    # 配置masters
    vi /opt/flink-1.15.1/conf/masters
    # 修改为
    lsyk01:8081
    
    # 配置works
    vi /opt/flink-1.15.1/conf/workers
    # 修改为
    lsyk01
    lsyk02
    lsyk03
    
    
  2. 配置flink-conf.yaml

    # master地址
    jobmanager.rpc.address: lsyk01
     
    # master端口,不用改
    jobmanager.rpc.port: 6123
     
    # master地址绑定设置(master节点参数)
    jobmanager.bind-host: 0.0.0.0
     
    # worker地址绑定设置
    taskmanager.bind-host: 0.0.0.0
     
    # worker地址(注意:三个worker节点的host不一样)
    taskmanager.host: lsyk02
     
    # worker槽位数设置,默认为 1
    taskmanager.numberOfTaskSlots: 2
     
    # 默认并行度,默认为 1
    parallelism.default: 2
     
    # WEB UI 端口(master节点参数) 放开注释即可
    rest.port: 8081
     
    # WEB UI 管理地址
    rest.address: lsyk01
     
    # WEB UI 地址绑定设置,想让外部访问,可以设置具体的IP,或者直接设置成“0.0.0.0”(master节点参数)
    rest.bind-address: 0.0.0.0
     
    
    # IO临时目录,默认:/tmp
    io.tmp.dirs: /opt/flink-1.15.1/tmp
     
    # 集群节点进程ID存放目录,默认:/tmp
    env.pid.dir: /opt/flink-1.15.1/pids
    
    # Job文件目录(master节点参数)
    web.upload.dir: /opt/flink-1.15.1/usrlib
    
    
  3. 分发到其他节点

    scp -r /opt/flink-1.15.1 lsyk02:/opt
    scp -r /opt/flink-1.15.1 lsyk03:/opt
    scp -r /opt/flink-1.15.1 lsyk04:/opt
    
  4. 每个worker节点修改:taskmanager.host: 参数

  5. 启动停止

    ​ 上述配置没有进行yarn配置,所以是以standalone启动。

    ​ 只能在配置的master节点启动集群

     /opt/flink-1.15.1/bin/start-cluster.sh
    

flink 1.15.1集群安装部署及测试_第1张图片

查看进程 :jps

flink 1.15.1集群安装部署及测试_第2张图片

/opt/flink-1.15.1/bin/stop-cluster.sh

在这里插入图片描述

  1. 管理界面

​ http://lsyk01:8081

flink 1.15.1集群安装部署及测试_第3张图片

flink 1.15.1集群安装部署及测试_第4张图片

  1. 提交作业

    直接管理页面提交"Submit New Job",上传jar包即可

yarn部署

​ 在将 Flink 任务部署至 YARN 集群之前,需要确认集群是否安装有 Hadoop,保证 Hadoop版本至少在 2.2 以上,并且集群中安装有 HDFS 服务。

  1. 配置环境变量,增加环境变量配置如下

    vi /etc/profile
    # 添加如下
    export HADOOP_HOME=/opt/hadoop-3.3.3
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export HADOOP_CLASSPATH=`hadoop classpath`
    
    export FLINK_HOME=/opt/flink-1.15.1
    export PATH=$PATH:$FLINK_HOME/bin
    # 分发到其他节点
    
  2. 启动hadoop

    # 先启动hadoop,在hadoop的name node节点执行
    start-all.sh
    
    

Application Mode

​ pplication Mode将在YARN上启动一个Flink集群,其中应用程序jar的main()方法将在YARN中的JobManager上执行。应用程序一完成,集群就会关闭。

​ 可以通过yarn application -kill 或取消Flink作业手动停止集群。

​ 为了释放Application Mode的全部潜力,请考虑与yarn.provided.lib.dirs配置项一起使用将flink的依赖jar、应用程序jar上传到集群中所有节点都可以访问的位置。

​ 下述操作将使作业提交变得更加轻量级,因为所需的Flink jar和应用程序jar将由指定的远程位置提取,而不是由客户机发送到集群。

# 启动flink,在master节点执行
cd /opt/flink-1.15.1/
#将flink lib及应用的jar上传到hdfs
hadoop fs -mkdir -p hdfs://lsyk01:9000/jars/flink
hadoop fs -copyFromLocal lib/*.jar hdfs://lsyk01:9000/jars/flink/
 
hadoop fs -mkdir -p hdfs://lsyk01:9000/jars/apps
hadoop fs -copyFromLocal ./examples/streaming/TopSpeedWindowing.jar hdfs://lsyk01:9000/jars/apps/
hadoop fs -copyFromLocal ./examples/batch/WordCount.jar hdfs://lsyk01:9000/jars/apps/
hadoop fs -copyFromLocal ./examples/batch/README.txt hdfs://lsyk01:9000/tmp/
 
#运行TopSpeedWindowing
./bin/flink run-application -t yarn-application -Dyarn.provided.lib.dirs="hdfs://lsyk01:9000/jars/flink/" hdfs://lsyk01:9000/jars/apps/TopSpeedWindowing.jar
 


flink 1.15.1集群安装部署及测试_第5张图片

flink 1.15.1集群安装部署及测试_第6张图片

点击去:

flink 1.15.1集群安装部署及测试_第7张图片

flink 1.15.1集群安装部署及测试_第8张图片

查看作业

# 列出集群上正在运行的作业,列出jobId、jobName
flink list -t yarn-application -Dyarn.application.id=application_1659191584047_0001

flink 1.15.1集群安装部署及测试_第9张图片

终止作业

#取消任务: jobId
#请注意,取消应用程序集群上的作业将停止该集群。
flink cancel -t yarn-application -Dyarn.application.id=application_1659191584047_0001 142d134309edd4ab858e93b870d996a5

或者在flink的管理界面终止:

flink 1.15.1集群安装部署及测试_第10张图片

运行batch任务

#运行wordcount示例
./bin/flink run-application -t yarn-application -Dyarn.provided.lib.dirs="hdfs://lsyk01:9000/jars/flink/" hdfs://lsyk01:9000/jars/apps/WordCount.jar --input hdfs://lsyk01:9000/tmp/README.txt --output hdfs://lsyk01:9000/tmp/wordcount-result10.txt

hadoop fs -ls hdfs://lsyk01:9000/tmp/wordcount-result10.txt
hadoop fs -cat hdfs://lsyk01:9000/tmp/wordcount-result10.txt/1
hadoop fs -cat hdfs://lsyk01:9000/tmp/wordcount-result10.txt/2

flink 1.15.1集群安装部署及测试_第11张图片

Per-Job Cluster Mode

​ Per-Job Cluster Mode将在YARN上启动一个Flink集群,然后在本地运行提供的应用程序jar,最后将JobGraph提交给YARN上的JobManager。如果传递–detached参数,客户端将在提交被接受后停止。

一个任务会对应一个Job,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享Dispatcher和ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。

一旦作业停止,Flink集群就会停止。

#提交任务
./bin/flink run -t yarn-per-job --detached ./examples/streaming/TopSpeedWindowing.jar
 
#列出集群上正在运行的作业, 列出jobId、jobName
./bin/flink list -t yarn-per-job -Dyarn.application.id=application_1659191584047_0005
 
#取消任务: jobId
#请注意,取消应用程序集群上的作业将停止该集群。
./bin/flink cancel -t yarn-per-job -Dyarn.application.id=application_1659191584047_0005 639979328d1e2f5353c7c91deb07ad2a

两者的区别

​ Application Mode 与 Per-Job Mode的区别

  • Application Mode的main代码在cluster中执行,Per-Job Mode在client中执行
  • 与Per-Job模式相比,Application模式允许提交由多个作业Job组成的应用程序。

你可能感兴趣的:(大数据应用,flink,hadoop,flink,大数据)