• Flink (1) 安装部署


    一、下载软件包

    这里下载2021年最新版本的1.12
    官网下载地址:官网
    其他镜像源: http://mirrors.hust.edu.cn/apache/flink/flink-1.12.1/
    官网下载比较慢

    对于flink来说,部署方式有三种,分别是local、standalone、yarn cluster

    二、部署standalone

    官网快速开始

    2.1 上传到集群解压

    tar zxvf flink-1.12.1-bin-scala_2.12.tgz -C /data1/hadoop/
    cd /data1/hadoop/
    mv flink-1.12.1/ flink
    

    2.2 配置

    配置文件主要关注以下几个

    conf/flink-conf.yaml  // 主要的配置文件
    conf/masters // 配置master阶段localhost
    conf/workers  // 配置task节点,默认是localhost
    

    这里在一台节点部署,类似于伪分布式。

    # grep -Ev "^$|[#;]" conf/flink-conf.yaml 
    jobmanager.rpc.address: localhost  // master通讯地址
    jobmanager.rpc.port: 6123  // 通讯端口
    jobmanager.memory.process.size: 1600m  // 运行master的节点使用的内存大小
    taskmanager.memory.process.size: 1728m
    taskmanager.numberOfTaskSlots: 1  // 任务slot,这个有点类似yarn的container或者spark的executor,可以理解为一个资源单位(cpu或者一块内存)。
    parallelism.default: 1 // 默认的并行度,对于分布式框架来说,并行处理任务是最基本的。
    jobmanager.execution.failover-strategy: region // 故障恢复的处理策略,可以是region或者full。说白了就是某一个任务失败以后,如果配置的是region,那么只是影响一部分,如果配置成full,那么影响所有的。
    

    flink的架构跟spark其实很类似,比如jobmanager可以类比spark里面的master,taskmanager可以类比spark里面的worker。

    [hduser@hadoop4 flink]$ ./bin/start-cluster.sh 
    Starting cluster.
    Starting standalonesession daemon on host hadoop4.
    Starting taskexecutor daemon on host hadoop4.
    [hduser@hadoop4 ~]$ jps
    23188 Jps
    23000 TaskManagerRunner
    7001 QuorumPeerMain
    22729 StandaloneSessionClusterEntrypoint
    7375 Kafka
    

    2.4 web界面

    启动完以后,就可以查看web界面了

    http://192.168.1.15:8081/#/overview
    

    2.5 测试

    ./flink run -m hadoop4:8081 ../examples/batch/WordCount.jar --input /tmp/input.txt --output /tmp/output.txt
    

    web界面查看

    也可以看到其并发度

    flink yarn对应两种模式,分别是yarn session、yarn cluster

    三、yarn-session

    3.1 说明

    通过yarn进行资源管理,flink的任务直接提交到hadoop集群
    1、hadoop集群启动,yarn需要运行起来。确保配置HADOOP_HOME环境变量。
    2、flink on yarn的交互图解

    yarn seesion(Start a long-running Flink cluster on YARN)这种方式需要先启动集群,然后在提交作业,接着会向yarn申请一块空间后,资源永远保持不变。
    如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,那下一个作业才会正常提交.
    这种方式资源被限制在session中,不能超过,比较适合特定的运行环境或者测试环境。
    JobManager和AM在同一容器中运行。一旦它们成功启动,AM就知道JobManager(它自己的主机)的地址。它正在为TaskManagers生成一个新的Flink配置文件(以便它们可以连接到JobManager)。该文件也上传到HDFS。此外,AM容器还提供Flink的Web界面。YARN代码分配的所有端口都是临时端口。这允许用户并行执行多个Flink YARN会话。

    3.2 部署

    首先需要启动yarn集群
    启动yarn session

    [hduser@hadoop4 bin]$ ./yarn-session.sh -qu orc -n 1 -jm 1024 -tm 1024 -s 1
    

    说明:

    -n: 表示taskmanager数量
    -jm: jobmanager内存大小
    -tm: taskmanager内存大小
    -s: taskmanager的slot数量
    -qu: 队列
    


    从上图可以看到jobmanager的地址

    或者可以从yarn界面的application master界面进入

    3.3 测试

    [hduser@hadoop4 bin]$ ./flink run -m hadoop4:38563  ../examples/batch/WordCount.jar --input /tmp/input.txt --output /tmp/output1.txt
    Job has been submitted with JobID e495084731cafc6868aba5023a16a0eb
    Program execution finished
    Job with JobID e495084731cafc6868aba5023a16a0eb has finished.
    Job Runtime: 46790 ms
    
    

    四、yarn cluster

    [hduser@hadoop4 bin]$ ./flink run -yqu orc -m yarn-cluster ../examples/batch/WordCount.jar --input /tmp/input.txt --output /tmp/output2.txt
    

    遇到的异常:
    1、找不到类异常

    原因是在Flink1.11 之后不再提供flink-shaded-hadoop-*” jars
    解决办法:

    export HADOOP_CLASSPATH=`hadoop classpath`
    

    2、cpu不足

    从错误信息看是可以用的cpu个数为0,这可能是nodemanager没有正常启动导致。

    3、yarn队列不能提交

    这种是因为该队列没有分配资源导致
    这种方式可以使用-qu指定队列的名字

    借鉴:
    | https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/setup_quickstart.html
    | https://www.cnblogs.com/aibabel/p/10937110.html
    | https://www.cnblogs.com/asker009/p/11327533.html
    | https://www.cnblogs.com/infoo/p/13385069.html

    记录学习和生活的酸甜苦辣.....哈哈哈
  • 相关阅读:
    利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口
    Application Request Route实现IIS Server Farms集群负载详解
    jQuery插件之ajaxFileUpload
    百度上传组件
    jQuery选择器总结 jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法
    如何使 WebAPI 自动生成漂亮又实用在线API文档
    Swagger+AutoRest 生成web api客户端(.Net)
    小程序开发的40个技术窍门,纯干货!
    为你下一个项目准备的 50 个 Bootstrap 插件
    In-Memory:内存数据库
  • 原文地址:https://www.cnblogs.com/yjt1993/p/14680726.html
Copyright © 2020-2023  润新知