flink on yarn

前言

Apache Flink,作为大数据处理领域的璀璨明星,以其独特的流处理和批处理一体化模型,成为众多企业和开发者的首选。它不仅能够在处理无界数据流时展现出卓越的实时性能,还能在有界数据批处理上达到高效稳定的效果。本文将简要介绍Flink的基本概念,以及如何在Yarn上安装和配置Flink。

初识Flink的魅力

Apache Flink是一个开源的计算框架,专为分布式数据流和批量数据处理而设计。它支持对有界和无界数据流进行状态化的计算,使得数据处理不再局限于传统的批处理或单一的流处理模式。这种一体化模型让Flink在实时分析和离线计算之间架起了桥梁,满足了多样化的数据处理需求。

Flink的核心优势在于其高效的内存执行速度和出色的容错机制。它采用Java和Scala编写,提供了丰富的API和灵活的窗口操作,使得开发者能够轻松构建复杂的数据处理流程。此外,Flink还保证了严格的一次性语义,确保每条数据只被处理一次,从而避免了数据重复或丢失的问题。

在实时处理方面,Flink展现了无与伦比的优势。它的延迟可以低至毫秒级别,远优于传统的批处理框架。这使得Flink在处理需要高实时性的应用场景时,如金融交易分析、在线广告推荐等,具有显著的优势。

Flink与Yarn的完美结合

Yarn(Yet Another Resource Negotiator)是Apache Hadoop的一个资源管理器,负责在集群中分配和管理资源。将Flink与Yarn结合使用,可以充分发挥Yarn的资源调度优势,提升Flink任务的执行效率。

在Yarn上运行Flink主要有两种模式:会话模式(Session Mode)和每作业模式(Per-Job Mode)。

会话模式允许用户预先启动一个Flink集群,并为其分配固定的资源。一旦集群启动,用户就可以将多个作业提交到该集群上执行。这种模式适用于需要长时间运行多个作业的场景,但缺点是即使在没有作业运行时,集群也会占用一定的资源。

每作业模式则更为灵活。在这种模式下,每次提交作业时,Flink都会为其创建一个独立的集群,并根据作业的需求动态分配资源。作业执行完毕后,集群会自动销毁,释放资源。这种模式适用于作业量较大且作业间相互独立的场景,能够充分利用集群资源并减少资源浪费。

安装与配置Flink on Yarn

要在Yarn上安装和配置Flink,首先需要下载并解压Flink的发行版。然后,根据集群的实际情况修改Flink的配置文件(如flink-conf.yaml),设置相关的参数,如Yarn集群的地址、任务的并行度等。接下来,将Flink的相关文件(如jar包和配置文件)上传到集群的指定位置,并配置环境变量以便在集群中运行Flink命令。

完成上述步骤后,就可以通过Flink提供的命令行工具或API提交作业到Yarn集群上执行了。Flink会根据作业的需求和Yarn集群的资源状况,动态地创建和管理集群,确保作业的顺利执行。

总结

Apache Flink以其独特的流处理和批处理一体化模型,以及高效的内存执行速度和出色的容错机制,成为大数据处理领域的佼佼者。与Yarn的结合使用,更是让Flink在集群环境中发挥了最大的性能优势。通过合理的安装和配置,Flink on Yarn将为大数据处理带来前所未有的速度和稳定性,助力企业在实时分析和离线计算方面取得更大的成功。

安装部署
解压缩文件

tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /opt/module/


添加环境变量

#FLINK_HOME
export FLINK_HOME=/opt/module/flink-1.14.0
export PATH=$PATH:$FLINK_HOME/bin
export HADOOP_CLASSPATH=`hadoop classpath`
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop


刷新环境变量,使其生效

source /etc/profile


进入 conf 目录,修改 flink-conf.yaml 文件(可以使用默认值)

jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 1
parallelism.default: 1

在bigdata_env.sh文件中添加export HADOOP_CLASSPATH=`hadoop classpath`

在flink的conf目录下,修改 flink-conf.yaml 文件添加的内容如下classloader.check leaked classloader: false


以per job 运行文件


flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/517928.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux文件IO(4):目录操作和文件属性获取

目录 1. 前言 2. 函数介绍 2.1 访问目录 – opendir 2.2 访问目录 – readdir 2.3 访问目录 – closedir 2.4 修改文件访问权限 – chmod/fchmod 2.5 获取文件属性 – stat/lstat/fstat 2.5.1 文件属性 – struct stat 2.6 文件类型 – st_mode 3. 代码练习 3.1 要求 3.2 代…

day04-MQ

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你…

数组--有序数组的平方

LeetCode中的第977题: 思想:①返回每个新数组;②排序; (n个数,进行n-1趟比较。第j趟比较中要进行n-j次两两比较) (1)n个数,进行n-1趟比较: for(…

深度学习【向量化(array)】

为什么要向量化 在深度学习安全领域、深度学习练习中,你经常发现在训练大量数据时,深度学习算法表现才更加优越,所以你的代码运行的非常快至关重要,否则,你将要等待非常长的时间去得到结果。所以在深度学习领域向量化…

(源码+部署+讲解)基于Spring Boot和Vue的宠物领养系统的设计与实现

一、引言 本报告旨在详细描述基于Spring Boot后端框架和Vue前端框架的宠物领养系统的设计与实现过程。宠物领养系统旨在为宠物主人和领养者提供一个便捷的平台,实现宠物的信息发布、领养申请、信息管理等功能。通过该系统,宠物主人可以快速找到适合的领养…

Kali WSL2(windows下安装了kali)

自从WSL2以来,感觉各方面也挺好的,有时候比vmware workstation方便,特别单独使用一个linux的时候。所以研究了下kali,也是很OK的,以及验证完成了。 本文参考官网: Kali Linux | Penetration Testing and Et…

C++——特殊类设计

目录 前言 一,请设计一个不能被拷贝的类 二,请设计一个只能在堆上创建对象的类 2.1 思路一:构造函数私有 2.2 思路二,析构函数私有 三,请设计一个只能在栈上创建对象的类 四,请设计一个只能创建一个…

练习14 Web [极客大挑战 2019]Upload

phtml格式绕过,burp修改content-type绕过,常见的文件上传存放目录名 题目就叫upload,打开靶机 直接上传一个图片格式的一句话木马,返回如下: 提交练习5和9中的两种可以执行图片格式php代码的文件,修改con…

Netty的线程模型

文章目录 前言NIO的三种reactor模式Netty对3种Reactor模式的支持Netty内部如何实现Reactor线程模型在事件分发过程中,Netty如何避免竞争条件 前言 Netty的线程模型采用了Reactor模式,这是一种高性能的IO设计模式,它基于NIO多路复用。Netty支…

226.翻转二叉树

226.翻转二叉树 力扣题目链接(opens new window) 翻转一棵二叉树。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNo…

Linux操作系统之防火墙、redis安装

目录 一、防火墙 1、防火墙的类别 2、安装iptables(四表五链) 一、防火墙 1、防火墙的类别 安全产品 杀毒 针对病毒,特征篡改系统中文件杀毒软件针对处理病毒程序 防火墙 针对木马,特征系统窃密 防火墙针对处理木马 防火墙分为两种 硬件…

MySql 实战大数据查询-(表分区实现)

一 mysql分区: 分区是将单个表按照某种规则划分成多个子集,每个子集称为一个分区。常见的分区策略包括按照时间范围、范围值、列表等进行分区。 优点: 查询性能更好,涉及分区键的查询,数据库引擎可以只扫描特定分区&…

【MySQL】聚合函数和分组聚合

👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

Qt+OpenGL_part1

OpenGL,Qt实现:1入门篇(已更完)_哔哩哔哩_bilibili OpenGL3.3以上是现代模式(可编程管线): 状态机 状态设置函数(State-changing Function) 状态应用函数 (State-using Function) OpenGL的状态…

人脸表情识别——数据集分享(内含处理过的AffectNet数据集)

前言: 最近终于是把第一篇论文发出去了,半年前我还挣扎在复现不出来论文的精度之中,这里指的是AffectNet和FERPlus这俩个数据集精度复现不出来,Raf-db数据集是可以复现出精度的。 接下来说重点:之前之所以另外两个数据…

【动手学深度学习】深入浅出深度学习之RMSProp算法的设计与实现

目录 🌞一、实验目的 🌞二、实验准备 🌞三、实验内容 🌼1. 认识RMSProp算法 🌼2. 在optimizer_compare_naive.py中加入RMSProp 🌼3. 在optimizer_compare_mnist.py中加入RMSProp 🌼4. 问…

MacOS - brew 和 brew cask 有什么区别?

brew 是 ruby 的包管理,后来看 yangzhiping 的博客介绍了 brew cask,感觉 cask 是更好的关联关系管理,但是,我后来使用过程中,发现很多软件 brew cask 里没有,但是 brew 里面倒是挺多!今天来给说…

电梯轿厢内电动车数据集,VOC标签格式已标注(数据集+训练好的权重)

本数据集用于电梯禁入电动车项目的目标检测算法模型训练任务。 共有4000张左右图片,全部为电梯监控真实照片,没有网络爬虫滥竽充数的图片,并已经分好数据集和验证集,可直接用来训练。以上图片均一一手工标注,标签格式为…

深入浅出 -- 系统架构之分布式架构

​​​​​​分布式架构: 根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 当垂直应用越来越多时,应用之间的交互不可避免,可将共用的基础服务或核心模块抽取出来作为独立服务&#xff0c…

golang 和java对比的优劣势

Golang(或称Go)和Java都是非常流行的编程语言,被广泛应用于各种领域的软件开发。尽管它们都是高级编程语言,但它们具有许多不同的特性和适用场景。本文将重点比较Golang和Java,探讨它们的优势和劣势。 性能方面&#…