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

相关文章

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用