版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目1-1部署Flink环境1目录CONTENTS01.Flink演进与优势02.架构与资源模式03.部署前准备04.单机部署演练05.Standalone集群部署06.故障排查与总结201Flink演进与优势3Flink的“前世今生”从学术原型到Apache顶级项目🔮上古时期(2014年前)源于德国柏林工业大学,早期聚焦批处理,基于流式Runtime。🚀Apache时代(2014年)成为Apache顶级项目,推出DataStreamAPI,奠定流处理基础。🏆生产验证(2018年)阿里双11大规模应用,验证其PB级状态、17亿条/秒的巅峰处理能力。4流计算的状态管理挑战为何需要状态管理?传统系统之痛与Flink的破局之道核心数据处理需求实时计算指标(滑动平均)用户行为分析跟踪事件时间窗口聚合乱序数据处理早期系统的问题使用门槛高:状态管理交给用户语义成本高:精确一次性实现复杂系统可靠性差:开发效率低,易出错Flink内置托管状态、检查点与可插拔状态后端,将容错与一致性下沉至框架,化解开发、运维与一致性三重挑战。5Flink的核心优势🚀原生流处理引擎事件驱动模式,延迟低至毫秒,同时保持高吞吐。⏰先进时间语义事件时间:数据产生的时间处理时间:系统处理的时间接入时间:数据进入Flink的时间水印机制:智能处理乱序数据💾内存管理优化堆外内存与内存池机制,减少GC瓶颈。📊高效序列化框架Kryo/Avro支持,优化网络传输。602架构与资源模式7Flink运行时架构解析Client负责提交、解析作业,生成执行计划。→JobManager主节点,负责调度、容错、资源分配。↘TaskManager工作节点,负责执行任务、管理状态。StateBackend负责状态的持久化与恢复8状态后端与容错机制三种状态后端对比MemoryStateBackend存储:内存|适用:测试环境|特点:快,但易失FsStateBackend存储:文件系统|适用:中等规模|特点:持久,性能中等RocksDBStateBackend存储:RocksDB|适用:大规模|特点:持久,高性能,支持增量快照检查点(Checkpoint)机制1JobManager触发检查点,向Source注入屏障(Barrier)。2TaskManager对齐屏障,异步保存状态快照。3快照完成后向JobManager确认,完成一次容错备份。通过屏障对齐和异步快照,实现Exactly-Once语义。9Flink资源管理模式选型Standalone适用:开发测试|优点:部署简单|缺点:功能有限YARN适用:大数据生态|优点:资源隔离|缺点:依赖HadoopKubernetes适用:云原生|优点:弹性伸缩|缺点:运维复杂Mesos适用:混合负载|优点:多框架支持|缺点:使用较少1003部署前准备11部署环境准备系统要求与前置检查支持的操作系统Linux(CentOS/Ubuntu),MacOSX,Windows(Cygwin)Java环境要求Java8(推荐)或Java11。验证命令:java-version前置检查清单1.Java环境验证2.系统工具安装3.网络配置检查4.资源分配规划12下载与目录结构下载与解压$wget[flink-url]$tar-xzfflink-*.tgz$cdflink-1.14.0核心目录结构速览bin/启动/停止脚本conf/配置文件(flink-conf.yaml)log/日志文件examples/示例程序1304单机部署演练14启动单机服务与UI验证#1.启动服务$./bin/start-cluster.shStartingcluster.Startingstandalonesessiondaemononhost...Startingtaskexecutordaemononhost...#2.验证进程$jps12345StandaloneSessionClusterEntryPoint12367TaskManagerRunner启动后,打开浏览器访问http://localhost:8081查看WebUI。15提交示例作业与生命周期管理提交与验证#提交作业$./bin/flinkrun./examples/streaming/WordCount.jar#查看作业列表$./bin/flinklistWaitingforresponse...------------------Running/ScheduledJobs------------------#取消作业$./bin/flinkcancel日志查看与定位jobmanager.log记录作业调度、生命周期管理、集群级事件。taskmanager.log记录具体算子执行、数据处理和任务级异常。1605Standalone集群部署17Standalone集群规划MasterNode(JobManager)0Worker10Worker22Worker33确保各节点间网络互通、免密SSH、关闭防火墙。18JobManager节点核心配置编辑conf/flink-conf.yaml#设置主节点的地址和临时数据的目录。注意:后面的属性值前要有一个英文空格,否则运行会报错。jobmanager.rpc.address:mastertaskmanager.tmp.dirs:/usr/local/flink/tmp#修改conf目录下的masters和workers文件#masters文件添加master:8081
#workers文件添加
master
slave1slave2此配置需同步至所有节点,确保JobManager地址一致。19TaskManager配置与集群启动集群启动在Master节点执行以下命令,一键启动整个集群:$./bin/start-cluster.sh脚本会根据conf/masters和conf/workers文件,SSH到各节点启动相应进程。一键启动,高效部署20集群验证与测试WebUI检查访问http://master-ip:8081,确认3个TaskManager已注册,总Slot数正确。提交WordCount作业运行示例程序,观察其在RunningJobs中的状态、吞吐量和检查点信息。验证检查点确认在配置的checkpoints.dir目录下生成了相应的快照文件。三大目标达成:集群可用、作业可跑、容错可写!2106故障排查与总结22故障排查指南(一):基础环境问题1:Java环境异常若启动报错JAVA_HOMEisnotset:#检查环境变量$echo$JAVA_HOME$whichjava#在conf/flink-env.sh中显式设置exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk问题2:端口冲突若端口8081被占用,可修改REST端口:#检查端口占用$netstat-tlnp|grep8081#修改flink-conf.yamlrest.port:808223故障排查指南(二):网络连通性若TaskManager无法注册,首先使用ping和telnet6123检查网络连通性。若网络不通,检查防火墙(firewalld/iptables)规则,并使用以下命令永久放行必要端口:$firewall-cmd--add-port=8081/tcp--permanent$firewall-cmd--add-port=6123/tcp--permanent$firewall-cmd--reload24性能调优:三段式策略1.水平扩展作业吞吐不足时,优先增加TaskManager数量,提升整体并行处理能力。→2.垂直调优内存不足触发OOM,调大cess.size,并检查RocksDB缓存。→3.精细化参数检查点过大导致超时,可启用增量快照,或调整checkpointing.timeout。25部署验收与成长路径部署验收清单Java环境验证进程存活&WebUI访问作业运行&检查点写入后续学习路径DataStreamAPI编程状态管理与容错机制性能调优与监控告警关注FlinkForward社区案例26项目1-2部署FlinkonYarn27目录CONTENTS01.FlinkonYarn概述02.Session模式详解03.Per-Job模式详解04.Application模式详解05.三种模式对比分析06.任务执行命令详解28目录CONTENTS01.环境部署步骤02.总结与建议2901FlinkonYarn概述30FlinkonYarn部署模式详解基于Hadoop3.1.3+Flink1.14.0的全分布集群Session模式共享集群,快速提交,适合短作业与开发测试。Per-Job模式作业独占,完全隔离,保障生产长任务稳定运行。Application模式客户端卸载,平台友好,支撑多租户大批量任务。3102Session模式详解32Session模式:共享集群的运行机制集群特性:一次启动,多次提交通过yarn-session.sh预先向Yarn申请资源,启动一个长期运行的Flink集群。该集群的生命周期独立于其上运行的任何作业,可反复用于提交任务。资源分配:动态复用,弹性伸缩TaskManager的Slot根据作业需求动态分配,作业完成后资源立即释放回集群资源池,供后续作业使用,实现高效复用。核心特点:多个作业共享同一个Flink集群和YarnApplication。资源管理:Yarn负责底层资源调度,Flink负责作业内Slot分配。客户端角色:轻量级,直接提交作业到已存在的集群,无需每次申请资源。33Session模式:优势与风险优势极速提交:节省重复的资源申请和集群启动时间。资源复用率高:Slot动态分配,适合短作业、迭代式开发。交互友好:非常适合用于开发测试、交互式SQL查询等场景。风险资源竞争:作业间可能因共享资源而产生性能干扰。故障影响面大:JobManager单点故障会导致所有运行中的作业失败。隔离性差:一个作业的问题可能影响整个集群的稳定性。3403Per-Job模式详解35Per-Job模式:硬核隔离机制集群特性:一作业一集群,生死与共每次提交作业都会向Yarn全新申请资源,启动一个专属的Flink集群。作业完成后,集群立即销毁,资源完全释放,实现硬隔离。资源分配:按需申请,精准控制TaskManager根据作业需求惰性分配,资源配额精准受控,完全杜绝作业间资源竞争,保障作业稳定性。核心特点:每个作业拥有独立的Flink集群和YarnApplication。资源管理:Yarn严格隔离不同作业的容器和队列,故障半径最小化。生命周期:由Yarn严格管理,作业完成即清理,资源释放彻底。36Per-Job模式:成本与价值成本:启动开销时间成本:每次作业都需申请AM和TM资源,启动时间比Session模式长20-40秒。资源开销:对于分钟级的短作业,启动时间可能占总执行时间的25%以上,性价比低。价值:稳定可靠完全隔离:作业间零干扰,保障关键任务稳定运行。精准计费:适合需要独立队列计费的不同业务线。故障收敛:单个作业失败不会影响其他任务。3704Application模式详解38Application模式:收益与边界核心收益客户端零负载:CPU占用和网络传输压力趋近于零。提交速度提升:大Jar包只需上传一次,提交耗时缩短50%以上。平台友好:天然支持多租户、审计和权限收敛。适用边界适用场景:自助数据平台、大批量任务调度、合规环境。注意事项:需关注AM自身的稳定性与Yarn队列容量,AM失败会导致整个应用重试。为解决客户端编译压力和网络瓶颈,将用户main()函数和Jar包直接推向YarnApplicationMaster(AM)。编译和执行均在AM内完成,客户端仅负责上传和启动。实现用户隔离和平台化批量提交。设计动机:卸载客户端执行流程:在AM内编译执行3905三种模式对比分析40三种模式横向对比分析特性维度Session模式Per-Job模式Application模式集群生命周期长期运行按作业创建按应用创建资源隔离性差好很好启动速度快慢中等适用场景短作业、测试长作业、生产多用户、平台化客户端压力中等高低4106任务执行命令详解42Session模式命令详解1.开启Session集群$bin/yarn-session.sh-n2-tm1024-s1-d申请2个容器,每个TM内存1024M,1个slot,后台运行。成功后返回application_id。2.提交作业$bin/flinkrun-yidapplication_xxxexamples/WordCount.jar\-inputhdfs://...-outputhdfs://...使用-yid指定已存在的Session集群提交任务。3.停止集群$yarnapplication-killapplication_xxx通过Yarn命令停止整个Session集群,释放所有资源。43Per-Job模式命令详解提交作业(一次性命令)$bin/flinkrun-tyarn-per-job-yjm1024-ytm1024\examples/WordCount.jar-inputhdfs://...-outputhdfs://...使用-tyarn-per-job指定模式,-yjm和-ytm分别设置JM和TM内存。环境变量要求必须设置以下环境变量之一,以便Flink能找到Yarn和HDFS配置:YARN_CONF_DIRHADOOP_CONF_DIRHADOOP_HOME44Application模式命令详解提交作业$bin/flinkrun-application-tyarn-application\-Dcess.size=1024m\-Dcess.size=1024m\-Dtaskmanager.numberOfTaskSlots=1\examples/WordCount.jar-inputhdfs://...-outputhdfs://...-tyarn-application:指定部署目标为Yarn上的Application模式。-Dkey=value:动态指定Flink作业相关的配置参数,如内存、Slot数等。4507环境部署步骤46环境部署准备系统要求操作系统:CentOS7运行环境:JDK8+网络:主机名互通,SSH免密登录架构:全分布集群(HDFS&Yarn已启动)组件版本Hadoop:3.1.3Flink:1.14.0Yarn:3.1.3(内置)47Hadoop3.1.3部署关键步骤1.环境配置配置主机名、网络、SSH免密、安装JDK。2.配置文件修改core-site.xml,hdfs-site.xml,yarn-site.xml。3.启动服务格式化HDFS,启动HDFS和Yarn服务,验证WebUI。48Flink1.14.0部署与集成1.Flink安装解压Flink安装包,配置flink-conf.yaml。2.Yarn集成设置HADOOP_CONF_DIR环境变量,引入Hadoop类路径。3.功能验证依次测试Session、Per-Job、Application三种模式提交作业。49部署验证测试清单基础环境验证Yarn资源管理正常,队列可访问HDFS读写权限正常,目录可访问FlinkonYarn验证三种部署模式均可用,作业能提交作业执行结果正确,可通过WebUI查看测试用例建议:先运行WordCount批作业,再测试简单的流处理作业。5008总结与建议51总结:模式选择与最佳实践开发测试Session模式快速迭代,资源复用生产长作业Per-Job模式稳定隔离,故障收敛多用户平台Application模式客户端卸载,平台友好最佳实践合理配置资源避免OOM,定期监控集群状态,根据业务场景选择最合适的部署模式,并建立完善的作业调度策略。52项目1-3配置flink的IDEA开发环境53目录CONTENTS01.开发环境全景02.ScalaSDK安装03.Scala插件安装04.Maven项目管理05.环境配置步骤06.依赖与插件配置54目录CONTENTS01.测试验证02.常见问题速查5501开发环境全景56FlinkScala开发环境:需求与组件清单搭建稳定、高效的开发环境是Flink应用开发的第一步,需确保运行与编译环境的双重满足。运行环境要求JDK8+与Flink官方绑定的Scala二进制版本足够的系统资源(内存/磁盘)编译开发组件(四件套)IntelliJIDEA:编码、调试、项目管理核心IDE。ScalaSDK:提供scalac编译器与标准库。Scala插件:赋予IDEA语法高亮、智能提示能力。Maven:统一管理依赖与项目构建流程。5702ScalaSDK安装58ScalaSDK:编译底座与安装选择SDK是FlinkScalaAPI的编译底座,选择合适的安装包格式是第一步。.msi安装包图形化向导,一键配置环境变量。适合新手快速起步换版本不能直接删文件夹.zip安装包手动解压,目录干净,灵活性高。适合多版本并存便于CI/CD或Docker集成59版本匹配:环境稳定的基石Flink与Scala大版本强绑定,混用会导致运行期错误。遵循官方兼容矩阵是关键。官方兼容速查双重锁定与验证IDEAProjectSDK确保IDEA项目设置中的ScalaSDK与pom.xml中`scala.version`属性一致。验证命令cmd中输入scala,显示scalasdk版本
6003Scala插件安装61Scala插件:赋予IDEA智能灵魂核心能力编码期:语法高亮、智能补全、参数信息、隐式转换提示。调试期:正确渲染Scala对象内部结构,支持工作表REPL。重构期:安全重命名、提取变量、移动包对象。安装通道在线:Settings>Plugins>Marketplace>搜索"Scala"。离线:官网下载匹配IDE构建号的zip包,InstallfromDisk。6204Maven项目管理63Maven:项目管理的基石四大核心优势自动化依赖传递统一构建生命周期与IDEA深度集成天然支持多模块关键配置四要点1使用外部Maven:避免IDEA内置版本过旧。2配置国内镜像:在`settings.xml`中加入阿里云镜像加速下载。3自定义本地仓库:将路径改至非系统盘,防止C盘爆满。4Pom文件配置的依赖下载的jar包可以从本地仓库找。6405环境配置步骤65Step1:新建Maven项目正确的开始是成功的一半,从IDEA欢迎屏开始,每一步都需精确。NewProject选择MavenProjectSDK选择JDK8+取消Archetype从空白坐标起步填写坐标GroupId&ArtifactId务必验证`java-version`输出与所选SDK路径匹配,避免编译级别隐患。66Step2:引入ScalaSDK将ScalaSDK集成到项目中,让IDEA具备Scala开发能力。1.添加GlobalLibrary`ProjectStructure`>`GlobalLibraries`>`+`>`ScalaSDK`>选择SDK根目录。2.添加Framework支持右键项目>`AddFrameworkSupport`>勾选`Scala`>选择刚添加的SDK。3.自动生成源码根IDEA将自动生成`src/main/scala`并标记为蓝色源码根目录。提示:若使用zip版SDK,路径避免中文与空格,防止scalac在Windows下生成符号链接失败。67Step3:配置Maven优化Maven配置,加速构建并保证团队环境一致性。指定外部Maven`Settings`>`BuildTools`>`Maven`,将`
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国半导体泵浦固体激光器行业市场动态分析及未来趋势研判报告
- 2026及未来5年中国动物旅游行业竞争现状及市场前景趋势报告
- 2025 发达国家的绿色能源转型课件
- 新建高速铜缆生产废料(铜屑)回收再利用生产线技改可行性研究报告
- 2026及未来5年中国安徽煤炭行业市场行情监测及前景战略研判报告
- 2026及未来5年中国肥胖症药物行业市场研究分析及投资前景研判报告
- 医疗成像用空心光纤制造可行性研究报告
- 医院抗菌药物临床应用手册
- 2025年公共安全事件应急处理手册
- 2026年机器人应用于机械加工的前景
- 加油站防恐安全培训
- 酒店线上推广方案
- 感受生活中的法律完整版
- Micro Shield程序初级应用指南
- GB/T 21837-2023铁磁性钢丝绳电磁检测方法
- 苏州山塘街区
- 职业卫生法律法规职业卫生法律法规
- 船体设计师个人简历模板
- 超声心动检查技术 心脏各瓣膜频谱多普勒的正常波形
- 2023学年完整公开课版《元宵节》
- 药物过敏急救处理
评论
0/150
提交评论