Flink集群的搭建

1、Flink独立集群模式
        1、首先Flink的独立集群模式是不依赖于Hadoop集群。
        2、上传压缩包,配置环境:
1、解压:
tar -zxvf flink-1.15.2-bin-scala_2.12.tgz

2、配置环境变量:

vim /etc/profile

export FLINK_HOME=/usr/local/soft/flink-1.15.2
export PATH=$FLINK_HOME/bin:$PATH

3、配置文件生效

source /etc/profile

        3、修改配置文件 
# 1、进入flink配置文件所在的位置
cd /usr/local/soft/flink-1.15.2/conf

# 1、修改flink-conf.yaml
vim flink-conf.yaml
# 修改配置
jobmanager.rpc.address: master    #jobmanager的地址,选择那台机器作主节点
jobmanager.bind-host: 0.0.0.0	  #0.0.0.0 表示的任何的节点都可以访问主节点

taskmanager.bind-host: 0.0.0.0		
taskmanager.host: localhost		   #表示的是从节点的
taskmanager.numberOfTaskSlots: 1	#指定槽位的个数,用来执行Task任务

rest.address: master
rest.bind-address: 0.0.0.0

# 2、修改masters
vim masters
# 修改配置
master:8081

# 3、修改workers
vim workers
# 修改配置
node1
node2
        4、分发到所有的服务器中:
scp -r flink-1.15.2/  node1:`pwd`
scp -r flink-1.15.2/  node2:`pwd`

# 分发之后需要单独修改node1和node2中taskmanager.host

taskmanager.host: node1
taskmanager.host: node2
        5、启动集群:
# 在master中执行启动命令
start-cluster.sh

# web ui
http://master:8081

# 关闭集群
stop-cluster.sh
        6、将任务提交到集群上的命令:
                1、将任务提交到集群上的第一种方式:

    1、首先将代码上传到服务器中:
    flink-1.0.jar

    2、提交flink任务
    flink run -c 主类的名称 jar包的名称
                2、将任务提交到flink集群上的第二种方式:在flink的web界面手动提交任务

                             a、点击Submit New Job 

                               b、点击Add New,上传jar包

                                c、指定任务的主类名称、指定任务的并行度,提交任务

2、Flink ON Yarn模式
        1、就是将flink任务提交到yarn上运行,不过在使用on yarn模式的时候需要注意的是需要将Flink中的独立模式关闭,并启动Hadoop。
Flink的独立集群模式和ON Yarn的模式只能使用一种,所以需要将独立集群模式关闭,并开启Hadoop
stop-cluster.sh
start-all.sh

        2、配饰hadoop的hadoop classpath
# 修改/etc/profile
vim /etc/profile

# 在最后增加配置文件
export HADOOP_CLASSPATH=`hadoop classpath`   #指的是获取Hadoop依赖包的路径

并且这个配置文件必须放在配置文件的最后一行

source /etc/profile
        3、Flink ON Yarn的三种模式:
                1、per job mode:

1、类似于Spark  on yarn的client的模式

2、如果出现错误,在本地是可以看见部分的错误

例如:在使用socket模拟实时的时候,突然关闭socket服务,此时错误的部分原因就会在客户端打印出来。

3、在本地执行main函数,构建的DataFlow图,再将DataFlow提交到JobManager上去运行

4、每一个Flink任务都是单独申请资源,启动一个JobManager和多个TaskManager,人物之间是不影响的。

提交任务:
flink run -t yarn-per-job -c 主类名 jar包的名称


对于ONE Yarn中的流处理,因为是流处理,所以进程是不会自动的停止,关闭Yarn上面进程的指令:
yarn  application  -kill 进程号


获取yarn中进程的logs日志的指令:

yarn  logs -applicationID 进程号
                2、application mode:

1、相当于Spark on yarn 中的cluster模式

2、在本地是看不见错误的

因为此时的错误在Yarn上,可以通过查看yarn上的日志来找出错误


获取yarn中进程的logs日志的指令:

yarn  logs -applicationID 进程号

也可以将日志写入到一个文件中,然后拉去到桌面上去查看:
yarn  logs -applicationID 进程号 >> 指定的文件


3、main函数是在JobManager中执行的,本地只需要负责提交任务

4、每一个Flink任务都是单独申请资源,启动一个JobManager和多个TaskManager,人物之间是不影响的。

5、可以用于生产环境

提交代码:
flink run-application -t yarn-application -c 主类名 jar包的名称
                3、session mode:

1、会现在yarn中申请一个资源启动JobManager,在来提交任务

2、提交任务会共用一个JobManager,动态的申请TaskManager,任务取消,TaskManager就会被释放。前面的两种模式都是一次只会服务一个任务,但是这个可以同时启动多个任务,此时就会产生一个问题,那就是如果其中某一个任务失败的化,那么后面的任务可能都会失败。

3、一般用于测试环境

1、启动session集群
yarn-session.sh -d


2、提交任务
flink run -t yarn-session  -Dyarn.application.id= 进程号 -c 主类名  jar包名称

也可以使用Web来提交任务,功能与独立集群的模式基本一致,但是不同的是他是建立在Yarn的模式上。

4、模式的抉择:

        1、如果业务的要是是实时的业务,那么就选择独立集群模式,因为yarn是基于Hadoop,适合做离线的

        2、如果一直使用的Hadoop,但是想要结合Flink,可以选择 on yarn的模式。

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

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

相关文章

3、FFmpeg基础

1、FFmpeg 介绍 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库。 2、FFmpeg 组成 - libavformat:用于…

【理解链表指针赋值】链表中cur->next = cur->next->next->next与cur =cur->next->next的区别

最近在做链表的题目的时候,对于所定义的cur链表指针产生了一些疑惑,查阅资料后整理一下我的理解: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(n…

AI创作系统ChatGPT商业运营系统源码+支持GPT4/支持ai绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

工程(十二)Ubuntu20.04LSD_SLAM运行

博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。这是一个科研互助群,主要围绕机器人,无人驾驶,无人机方面的感知定位,决策规划,以及论文发表经验,以方便大家很好很快的科研…

CSS 显示、定位、布局、浮动

一、CSS 显示: CSS display属性设置元素应如何显示;CSS visibility属性指定元素应可见还是隐藏。隐藏元素可以通过display属性设置为“none”,也可以通过visibility属性设置为“hidden”。两者的区别:visibility:hidden可以隐藏某…

王道p40 1.设计一个递归算法,递归删除单链表L中所有值为x的结点(c语言)

视频讲解在这里:👇 p40 第1题 王道数据结构课后代码题c语言代码实现_哔哩哔哩_bilibili 本题代码如下 void delete(linklist* L,int x)//递归删除x {if((*L)->next! NULL){if ((*L)->next->data x)//找到x{lnode* p (*L)->next;(*L)-&…

【Springboot】Vue3-Springboot引入JWT实现登录校验以及常见的错误解决方案

文章目录 前言一、JWT简单介绍二、token校验设计思路三、使用步骤Springboot部署JWT引入依赖:创建登录实体类后端:LoginController.java路由守卫函数 四、问题 前言 项目版本: 后端: Springboot 2.7、 Mybatis-plus、Maven 3.8.1…

网络测试工具—— iperf2 安卓APK 下载 及简单使用

网络测试工具—— iperf2 安卓APK 下载 及简单使用 前言一、iperf2是什么?二、使用步骤附上help中命令截图翻译总结 前言 项目上有一款安卓车机加载局域网图片加载非常慢,所以需要测试一个安卓车机设备的带宽,经过调研后使用到了iperf2。 一…

项目管理之如何出道(中)

昨日立冬,各位盆友,有没有吃饺子? 冬天来了,寒冷未约而至,冬雪侵袭北国。未知的变化总能让人产生恐慌和无措,就像行走在荒岛小路,前面遇到的究竟是迷人之景?还是饿狼之瞟&#xff1f…

52基于MATLAB的希尔伯特Hilbert变换求包络谱

基于MATLAB的希尔伯特Hilbert变换求包络谱,对原始信号进行初步滤波,之后进行包络谱分析。可替换自己的数据进行优化。程序已调通,可直接运行。 52的尔伯特Hilbert变换包络谱 (xiaohongshu.com)

计算机三级四级嵌入式备战经验

2023年9月23日于东北大学考完三四级 大四的时候时间比较多,因为本科学了一点嵌入式的知识,研究生又用不到,所以想着考个证金盆洗手。 三级考的是一本书,更多涉及到S3C2410这个芯片;四级考的是两本书:《操作…

故障注入测试目的及方法

在软件开发的复杂环境中,保证应用程序的鲁棒性和稳定性是至关重要的。故障注入测试是一种专门设计用于模拟和评估系统对故障的响应能力的测试方法。通过主动引入故障并观察系统的行为,开发者可以更全面地了解系统在面临异常情况时的表现。 一、故障注入测…

人工智能入门:什么是“具身智能“?

具身智能(Embodied Intelligence)是一种智能系统的设计理念,其目标是通过将感知、决策和行动融合在一起,使机器能够像人类一样具备身体和运动能力。具身智能的核心理念是利用机器的身体结构和动作能力来增强其智能表现和解决复杂任…

git解决冲突的方法。

1、 cherry-pick git fetch ssh://jingyou.caigerrit.transtekcorp.com:29418/leshan refs/changes/23/34123/3 && git cherry-pick FETCH_HEAD2、 文件解冲突! 3、 cherry-pick完整。 git cherry-pick --continue4、查看状态。 5、 push。 git push o…

混合云中 DevOps 的最佳实践

近年来,出现了各种工具、技术和框架,其目标是增强灵活性、性能和可扩展性。传统的整体方法已被微服务和纳米服务等更加模块化的方法所取代。此外,云计算的兴起导致本地软件被云环境所取代,云环境提供了以前无法提供的广泛优势和功…

Ubuntu中安装rabbitMQ

一、安装 RabbitMQ ①:更新源 sudo apt-get update②:安装Rrlang语言 由于RabbitMq需要erlang语言的支持,在安装RabbitMq之前需要安装erlang sudo apt-get install erlang-nox③:安装rabbitMQ sudo apt-get install rabbitmq-s…

彻底改变您的用户体验设计:您需要了解的 5 个工具包和指南

问题 进行设计冲刺、设计思维工作坊期间,如何找到好用的UX工具? 市面上有很多优秀的UX书籍,但也有越来越多的在线 用户体验设计 工具包和方法指南详细介绍了大量的UX工具和方法,包括这些方法是什么、为什么要用、何时用还有怎么…

redis主从复制玩法全过程笔记(redis7+版本)

目录标题 环境目的实操一主多仆服务器和本地主机配置环境docker 环境配置 薪火相传反客为主 主从复制的流程主从复制的特性主从复制的缺点本篇结语 环境 我的环境介绍window环境VM虚拟机一台并安装centos7,一台阿里云Linux服务器,另一台Linux系统主机并…

第四章:人工智能深度学习教程-激活函数(第三节-Pytorch 中的激活函数)

在本文中,我们将了解 PyTorch 激活函数。 目录 什么是激活函数以及为什么使用它们? Pytorch 激活函数的类型 ReLU 激活函数: Python3 Leaky ReLU 激活函数: Python3 S 形激活函数: Python3 Tanh 激活函数&am…

死锁问题概述

文章目录 死锁的概念死锁的定义相似概念:饥饿死锁产生的原因死锁产生的必要条件死锁的预防破坏互斥条件破坏不可剥夺/不可抢占条件破坏请求并保持条件破坏循环等待条件 死锁避免安全性算法 死锁的处理策略死锁的检测死锁的解除 死锁的概念 死锁的定义 多个进程由于…