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

相关文章

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4