NiFi 集群知识点 | 学习笔记

简介: 快速学习 NiFi 集群知识点

开发者学堂课程【NiFi 知识精讲与项目实战(第二阶段):NiFi 集群知识点学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/706/detail/12531


NiFi 集群知识点

内容介绍:

一、NiFi 集群知识概述

二、NiFi 集群束语


一、NiFi 集群知识概述

用户(DFM)可能会发现在单台的服务器上使用 NiFi 可能不能够支撑数据流的数据量,这时就需要一种解决方案,可以在多台服务器上运行的数据流。但是这样会产生一个问题,用户每一次想要更改数据流的时候,必须在每一个服务器上都进行更改,然后还要逐个监视每一台服务器。如果使用了 NiFi 集群,就可以在增加处理能力的同时使用单独的一个接口来控制整个集群,那也就可以通过接口来快速的更改整个集群的数据流,并且对整个数据流进行监控,NiFi 集群允许用户通过一次更新将所更改的全部内容复制到集群的所有节点。通过这个单独的接口,用户还可以去监控所有节点的健康状况以及它们的状态、信息。如下图。

image.png

NiFi 使用的是零主集群的模式,NiFi 集群中每一个节点都会对数据执行相同的任务,但是每一个节点都在不同的数据集上进行预警,其中的一个节点会被自动的选择成为集群协调器。集群当中的所有节点都会像这个集群协调器发送心跳信息,并且集群协调器会负责断开,在某一段时间之内没有心跳的节点。当新节点选择加入集群的时候,这个新节点首先要连接到集群协调器,如果集群协调器允许这个节点加入该集群,当前的流就会负载给新节点进行处理。如果节点的流配置和集群协调器的版本不一样,那这个节点将会加入失败。


二、NiFi 集群束语

下面引入另外几个束语,它是 NiFi 集群里面所特有的束语,在设置集群之前需要先提前了解一下。

1.NiFi 集群协调器(NiFi Cluster Coordinator)

NiFi 集群协调器是NiFi集群中的节点,负责管理集群中允许执行任务的节点,并为新加入的节点提供最新的数据流量。当 DataFlow Manager 管理集群中的数据流时,可以通过集群中任何节点的用户界面执行此操作。然后,所做的任何更改都将复制到集群中的所有节点。

2.节点(Nodes)

指的是集群中多个不同的 NiFi 服务,每个集群由一个或多个节点组成。节点执行实际的数据处理。

3.主节点(Primary Node)

主节点在之前的入门阶段也进行过讲述,每个集群都有一个主节点。它的主要目的是为了运行一些不方便在整个进群中运行的任务,即独立的任务会在主节点上运行。

image.png

4.孤立的 Processor

在 NiFi 集群中相同的数据流会在所有节点上运行,但是可能存在一种情况,不希望每一个处理器都是在集群的状态下运行。比如有一些处理器会和外部的服务进行通信,像读取数据库,如果读取数据库在每一个集群的节点运行,会出现重复读取的情况。这些处理器会读取文件,如果这样的组件在集群中每一个节点都去运行的,就会存在重复读取的问题,所以这个时候就会把这样类型的处理器设置为只在主节点上进行,解决重复读取的问题。独立处理器获取到数据信息后还会有后续的处理,后续的处理可以通过配置让它发送到集群中的其他所有节点上,然后实现负载均衡消费。

5.心跳

心跳是和 zookeeper 有关的,类似于 zookeeper 机制。NiFi 节点也是通过心跳把健康状况和状态传送给集群协调器,然后就可以通过这样的心跳知道有哪些节点处于连接状态正常工作。默认情况 NiFi 节点五秒钟发送一次心跳,如果集群协调器在40秒内没有从节点接收到心跳信息,那么它就会判断这个节点因为没有心跳而死亡,会断开这个节点。节点发送时的五秒的设置可以在 nifi.properties 文件中配置。集群协调器断开节点主要是因为集群协调器需要确保集群中每一个节点都处于活着的同步状态,如果没有定期收到节点信息,那么就无法确认节点是否还继续存活。如果 NiFi 节点被判断死亡之后就重新发送心跳,这个协调器就会认为这个节点又复活了,会自动的把这个节点重新加入到集群当中。一旦集群协调器接触到心跳,之前由于心跳不足而导致的断开连接和重新连接的信息都会报告给用户界面的公告中。

相关文章
|
存储 安全 Java
【NiFi】(一)NiFi 简介及核心概念
【NiFi】(一)NiFi 简介及核心概念
3092 0
【NiFi】(一)NiFi 简介及核心概念
|
存储 小程序 算法
【微信小程序】粤语教学平台-粤言粤语(上)
【微信小程序】粤语教学平台-粤言粤语
625 0
|
存储 监控 Java
NiFi 监控2 | 学习笔记
快速学习 NiFi 监控2
534 0
NiFi 监控2  |  学习笔记
|
Linux 数据安全/隐私保护
Linux基础命令---put上传ftp文件
put 使用lftp登录ftp服务器之后,可以使用put指令将文件上传到服务器。 1、语法 put [-E] [-a] [-c] [-O base] lfile [-o rfile] 2、选项列表 -o 指定输出文件的名字,不指定则使用原来的名字 -...
8631 0
|
SQL 安全 数据库
南大通用GBase 8s 查看用户权限查询指南
本文详细介绍了南大通用GBase 8s数据库中用户权限的查看与管理方法,涵盖数据库级别和表级别权限的定义、查看及赋权操作,以及相关系统表的使用,旨在帮助数据库管理员有效维护数据访问安全。
|
机器学习/深度学习 人工智能 自然语言处理
26岁的“天才少年”,带队面壁打通高效大模型之路
**曾国洋,26岁的面壁智能CTO,自幼编程,清华NLP实验室研究员,致力于高效大模型。他领导的面壁智能通过OpenBMB社区降低大模型使用门槛,推动大模型训练效率提升与成本控制。在与昇腾AI的合作中,实现大模型性能与国产化适配,目标是使AGI更高效、普及。尽管市场竞争激烈,曾国洋坚信AGI未来并持续推动技术创新。**
239 0
|
运维 监控 Java
使用jps命令查看Java进程
`jps`是Java开发者和系统管理员的得力助手,它简化了Java进程监控的过程,使得快速检查应用运行状态变得轻而易举。通过合理利用其提供的参数,可以高效地进行故障排查、性能监控及日常管理任务,确保Java应用稳定运行。
1052 2
|
分布式计算 大数据 Java
Scala 入门指南:从零开始的大数据开发
Scala 入门指南:从零开始的大数据开发
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错之遇到报错org.postgresql.util.psqlexception: The connection attempt failed.,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
XML Java Maven
深入探讨Maven打包:打造精致的Zip包
本文介绍了如何使用Maven将Spring Boot项目打包并部署。首先,利用Maven Assembly Plugin创建包含JAR的ZIP文件,以便于部署和修改配置文件。该插件允许自定义打包内容和格式。在`package.xml`中定义了打包格式、依赖、脚本和资源文件的规则。接着,在POM.xml中配置插件,排除配置文件和静态资源以保持外部。最后,执行`mvn package`命令生成分发包,简化了项目的部署流程。
946 2