Apache Nifi技术实践V1.0

2023-10-13 04:10
文章标签 技术 实践 apache v1.0 nifi

本文主要是介绍Apache Nifi技术实践V1.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 APACHE NIFI简述
    • 1.1 APACHE NIFI架构
      • 1.1.1 Nifi的核心概念
    • 1.2 APACHE NIFI的特点
    • 1.3 APACHE NIFI应用场景
  • 2 APACHE NIFI部署
    • 2.1 中间件版本选取
    • 2.2 环境准备
      • 2.2.1 CentOS6.8
      • 2.2.2 关闭防火墙-root
    • 2.3 集群安装
      • 2.3.1 Apache Nifi安装
      • 2.3.2 集群启动
      • 2.3.3 安装检查
  • 3 APACHE NIFI基本操作
    • 3.1 同步文件夹
      • 3.1.1 基本操作
      • 3.1.2 注意事项
    • 3.2 NIFI接入MYSQL数据
    • 3.3 NIFI接入KAFKA数据


1 APACHE NIFI简述

Apache NiFi 是一个易于使用、功能强大而且可靠的数据处理和分发系统。Apache NiFi 是为数据流设计。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑。
官方网站:http://nifi.apache.org/

1.1 APACHE NIFI架构

架构:
在这里插入图片描述
集群管理器:
在这里插入图片描述

1.1.1 Nifi的核心概念

核心概念如下:
• FlowFile
FlowFile表示在系统中移动的每个对象,FlowFile由两部分组成:
o content 内容 既数据本身
o attributes 属性 每条数据带上的属性信息.以键值对的形式.
• FlowFile Processor
o FlowFile处理器,由它完成对数据的实际处理工作.包括但不限于对数据内容和属性的加载,路由,转换,输出等.
o 处理器最灵活之处在于处理器可以读写FlowFile的属性信息,并且用自带的领域特定语言(DSL)对属性进行编程.
• Connection
o 由Connections把各个处理器链接起来,从而形成数据处理流程的有向无环图(DAG图).也称数据流, NiFi 中的 Flow.
o Connection 同时充当处理器间的队列,并且队列的属性高度可配置.
o 这些队列可以配置优先级,可以在设置阈值,可以实现反压。
• Flow Controller
o 流控制器对用户不可见的.它充当维护处理器如何连接和管理所有处理器所使用的线程及其分配的重要角色。
o Flow Controller充当促进处理器之间FlowFiles交换的代理。
• Process Group
o 为了方便管理,把一组特定的处理器及其连接组成的 Flow 放到一个处理组中去,可以通过输入端口接收数据并通过输出端口发送数据。
o 以这种方式,处理组可以通过组合其他组来创建全新组,形成更加复杂的DAG图( Flow 流)。

1.2 APACHE NIFI的特点

Maxwell的主要特点:
• 基于web的用户界面
o 无缝体验设计、控制和监视
• 高度可配置的
o 数据丢失容错和保证交付
o 低延迟和高吞吐量
o 动态优先级
o 流可以在运行时修改
o 背压 Back presure
• 数据来源
o 从始至终跟踪数据流
• 为扩展设计
o 构建自己数据处理器
o 支持快速开发和有效的测试
• 安全
o SSL,SSH,HTTPS加密内容,等等……
o 可插拔的基于角色的验证/授权

1.3 APACHE NIFI应用场景

  1. 以托拉拽的方式,在可视化图形界面上实现数据流的传输。

2 APACHE NIFI部署

2.1 中间件版本选取

中间件名称版本号
CentOSCentOS 6.8
Apache Nifi1.11.4

2.2 环境准备

本次技术实践安装Apache Nifi集群,单独安装在hadoop102主机上

2.2.1 CentOS6.8

CentOS6.8安过程省略。预先创建用户/用户组zhouchen
预先安装jdk1.8.0_92 +

2.2.2 关闭防火墙-root

针对CentOS7以下
1.查看防火墙状态
service iptables status
2.停止防火墙
service iptables stop
3.启动防火墙
service iptables start

2.3 集群安装

2.3.1 Apache Nifi安装

1.下载Maxwell(安装包1.3G建议先下载再上传到服务器)

[zhouchen@hadoop102 software]$ wget http://mirror.bit.edu.cn/apache/nifi/1.11.4/nifi-1.11.4-bin.tar.gz

2.解压

[zhouchen@hadoop102 software]$ tar -zxvf nifi-1.11.4-bin.tar.gz -C /opt/module/

3.修改配置conf/nifi.properties

[zhouchen@hadoop102 nifi-1.11.4]$ vim conf/nifi.properties
nifi.web.http.port=8848  #默认端口是8080,这里我们改成8848

2.3.2 集群启动

后台启动:

[zhouchen@hadoop102 nifi-1.11.4]$ bin/nifi.sh start

前端启动:

[zhouchen@hadoop102 nifi-1.11.4]$ bin/nifi.sh run 

停止:

[zhouchen@hadoop102 nifi-1.11.4]$ bin/nifi.sh stop

首次启动会创建的文件和目录:
o content_repository
o database_repository
o flowfile_repository
o provenance_repository
o work 目录
o logs 目录
o 在conf目录中,将创建flow.xml.gz文件
在这里插入图片描述

2.3.3 安装检查

1.查看进程
[zhouchen@hadoop102 nifi-1.11.4]$ jps
4848 NiFi
5012 Jps
4830 RunNiFi
2.查看登陆页面
http://hadoop102:8848/nifi
在这里插入图片描述

3 APACHE NIFI基本操作

3.1 同步文件夹

3.1.1 基本操作

先写一个小例子,同步文件夹

  1. 从工具栏中拖入一个Processor,在弹出面板中搜索GetFIle,然后确认
    在这里插入图片描述在这里插入图片描述

  2. 配置GetFile,设置结束关系、输入目录、保留源文件,其他设置可以不动
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  3. 从工具栏中拖入一个Processor,在弹出面板中搜索PutFIle,然后确认,如第一步
    在这里插入图片描述

  4. 配置PutFile,设置结束关系、输出目录,其他设置可以不动,输出目录为空文件夹
    在这里插入图片描述在这里插入图片描述

  5. 将GetFIle与PutFIle关联起来,从GetFIle中心点击,拖拉到PutFIle上
    在这里插入图片描述

  6. 右键启动GetFIle与PutFIle,可以看到结果,输入目录中的文件同步到,输出目录中了
    在这里插入图片描述

3.1.2 注意事项

注意:这里有几个细节
1.从结果图看到原文件中的子目录export没有同步
2.有少量的文件没有同步成功
3.目标目录中原有的nifi-1.11.4-bin.tar.gz文件没有被覆盖
错误提示在画布上:
在这里插入图片描述
或者在错误日志中:
在这里插入图片描述

3.2 NIFI接入MYSQL数据

1.拖入一个processor,搜索mysql,然后配置mysql信息
在这里插入图片描述

2.再拖入一个processor,搜索putfile,配置输出目录
在这里插入图片描述

3.连接两个processor,并开启
在这里插入图片描述
4.查看/opt/software下输出的文件
在这里插入图片描述
可以看到导出的数据都是Json格式的

3.3 NIFI接入KAFKA数据

1.拖入一个processor,搜索mysql,并配置mysql信息
在这里插入图片描述

2.拖入一个processor,搜索publishkafka
在这里插入图片描述

3.配置publishkafka信息
在这里插入图片描述
4.到服务器开启kafka,并启动消费maxwell

5.连接两个processor,并启动

6.查看可以消费到数据

这篇关于Apache Nifi技术实践V1.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200664

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识