• hadoop 3.x大数据集群搭建系列5-安装Flink


    一. 下载Flink安装包并解压

    cd /home/software
    https://archive.apache.org/dist/flink/flink-1.14.5/flink-1.14.5-bin-scala_2.12.tgz
    
    tar -xvf flink-1.14.5-bin-scala_2.12.tgz -C /home
    
    • 1
    • 2
    • 3
    • 4

    二. 修改配置

    2.1 用户环境变量

    vi /etc/profile
    export FLINK_HOME=/home/flink-1.14.5
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export HADOOP_CLASSPATH=`hadoop classpath`
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$FLINK_HOME/bin
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.2 flink-conf.yaml

    前面三个只要放开就好,第四个指定zk复用(相当于 hp5:2181,hp6:2181,hp7:2181,带目录是因为zk集群不止给flink用还有kafka等)

    hdfs dfs -mkdir /flink-cluster
    hdfs dfs -mkdir -p /vmcluster/flink/ha/
    hdfs dfs -mkdir -p /vmcluster/flink-checkpoints
    hdfs dfs -mkdir -p /vmcluster/flink-savepoints
    hdfs dfs -mkdir -p /vmcluster/completed-jobs/
    hdfs dfs -mkdir -p /vmcluster/flink/ha/flink-cluster
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    cd /home/flink-1.14.5/conf/
    vi flink-conf.yaml
    jobmanager.rpc.address: hp5
    jobmanager.rpc.port: 6123
    jobmanager.memory.process.size: 1600m
    taskmanager.memory.process.size: 1728m
    taskmanager.numberOfTaskSlots: 3
    parallelism.default: 1
    high-availability: zookeeper
    high-availability.cluster-id: /flink-cluster
    high-availability.storageDir: hdfs://hp5:8020/vmcluster/flink/ha/
    high-availability.zookeeper.quorum: hp5:2181,hp6:2181,hp7:2181
    state.backend: filesystem
    state.checkpoints.dir: hdfs://hp5:8020/vmcluster/flink-checkpoints
    state.savepoints.dir: hdfs://hp5:8020/vmcluster/flink-savepoints
    jobmanager.execution.failover-strategy: region
    jobmanager.archive.fs.dir: hdfs://hp5:8020/vmcluster/completed-jobs/
    historyserver.archive.fs.dir: hdfs://hp5:8020/vmcluster/completed-jobs/
    classloader.check-leaked-classloader: false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    hdfs路径:
    此处是hp5:8020
    具体参考core-site.xml配置文件中的fs.default.name属性

    2.3 配置${FLINK_HOME}/conf/masters文件

    cd ${FLINK_HOME}/conf/
    vi masters
    hp5:8081
    
    • 1
    • 2
    • 3

    2.4 配置${FLINK_HOME}/conf/workers文件

    cd ${FLINK_HOME}/conf/
    vi workers
    hp5
    hp6
    hp7
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.5 将flink目录传到其它节点

    scp -r /home/flink-1.14.5 root@hp6:/home/
    scp -r /home/flink-1.14.5 root@hp7:/home/
    
    • 1
    • 2

    三. flink Standalone部署模式

    3.1 启动flink Standalone

    cd /home/flink-1.14.5/bin/
    ./start-cluster.sh 
    
    • 1
    • 2

    image.png

    3.2 测试运行Flink程序

    flink run /home/flink-1.14.5/examples/streaming/TopSpeedWindowing.jar   
    
    • 1

    image.png

    web页面查看:
    8081是默认端口

    http://hp5:8081/
    
    • 1

    image.png

    四. flink on yarn部署模式

    注意:
    确保hdfs和yarn集群运行正常。

    4.1 Application Mode

    部署服务是一个消耗资源比较大的服务,并且很难计算出实际资源限制,Flink 1.11 引入了另外一种部署选项 Application Mode, 该模式允许更加轻量级,可扩展的应用提交进程,将之前客户端的应用部署能力均匀分散到集群的每个节点上。由于每个应用程序有一个JobManager,因此可以更平均地分散网络负载。Application 模式允许提交由多个Job组成的应用程序。Job执行的顺序受启动Job的调用的影响不受部署模式的影响。

    Application Mode将在YARN上启动一个Flink集群,其中Application jar的main()方法将在YARN中的JobManager上执行。应用程序一完成,集群就会立即关闭。你可以手动停止集群使用yarn application -kill 或者 cancelling Flink job。

    4.1.1 提交flink job

    flink run-application -t yarn-application /home/flink-1.14.5/examples/streaming/TopSpeedWindowing.jar
    
    • 1

    页面提交成功后,就退出了
    image.png

    界面查看,yarn中有一个Flink程序在运行。
    image.png

    4.1.2 kill flink job

    命令行形式:

    yarn application -kill application_1668044595943_0012
    
    • 1

    image.png

    web 界面 cancel job:
    image.png

    4.2 Per-Job Cluster Mode

    直接提交任务给YARN,大作业的场景,使用这种方式。每个Job都有一个JobManager,每个TaskManager只有单个Job。

    Per-job Cluster Mode 将在YARN上启动Flink集群,然后在本地运行提供的application jar,最后将JobGraph提交给YARN上的JobManager。如果你传递 --detached参数,client将在提交被接受后停止。

    flink run -t yarn-per-job --detached /home/flink-1.14.5/examples/streaming/TopSpeedWindowing.jar
    
    • 1

    4.3 Session Mode

    使用Flink中的Yarn-session(yarn客户端),会启动两个必要的服务JobManager和TaskManager。客户端通过yarn-session提交作业,yarn-session会一直启动,不停地接收客户端提交的作业,有大量的小作业,适合使用这种方式。

    在session模式下,集群中的所有作业只有一个JobManager,Job 被随机分配给TaskManager。

    yarn-session.sh -n 1 -jm 256 -tm 256
    jps
    
    • 1
    • 2

    参考:

    1. https://blog.csdn.net/qq_37334150/article/details/115068790
    2. https://blog.csdn.net/LW_GHY/article/details/118101780
    3. https://www.modb.pro/db/390882
    4. http://www.manongjc.com/detail/29-crcgzzdvnmwxwim.html
  • 相关阅读:
    Hive用户中文使用手册系列(四)
    3.4bochs的调试方法
    深度解读篇章:剖析构建互联网大厦的基石——TCP/IP协议全貌
    学信息系统项目管理师第4版系列35_补遗
    工业网络通讯技术的发展历程
    载CdTe交联聚苯乙烯荧光微球/聚苯乙烯单孔微球β-环糊精聚异丙基丙烯酰胺多种制备
    react学习3 生命周期
    【快速上手ESP32(基于ESP-IDF&VSCode)】07-I2C(附BH1750实战代码)
    热门Java开发工具IDEA入门指南——创建新的Java应用程序(中)
    不会DRF?源码都分析透了确定不来看?
  • 原文地址:https://blog.csdn.net/u010520724/article/details/128076345