当前位置: 首页 > article >正文

Apache nifi demo 实验

Apache nifi 是个数据流系统,可以通过配置 自定义的流程来实现数据的转换。


比如可以配置一个流程,读取数据库里的数据,再转换,最后保存到本地文件。


这样可以来实现一些数据转换的操作,而不用特地编写程序来导入导出。

- 相关资料
国内下载镜像: https://mirrors.aliyun.com/apache/nifi/2.2.0/, 里面有不同的版本,这里下载标准版的nifi-2.2.0-bin.zip
官方文档: https://nifi.apache.org/
processor类型的文档:https://nifi.apache.org/components

本文包含以下内容:
- 启动运行
- 一些概念
- 一个读取csv格式数据,转换为json格式数据,写入到本地磁盘的demo

启动运行:
只需要解压zip,进入bin目录,打开命令行,执行执行nifi start即可启动,启动后密码会生成到logs目录的nifi-app.log文件里,搜索password可以看到生成的账号密码


D:\nifi-2.2.0-bin\nifi-2.2.0\bin>nifi start
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_161
NIFI_HOME=D:\ljhlab\nifi-2.2.0-bin\nifi-2.2.0

日志文件里搜索,可以看到:
2025-03-02 22:17:53,849 INFO [main] o.a.n.a.s.u.SingleUserLoginIdentityProvider

Generated Username [8b418056-cf0a-46a3-b08f-a8ba25563eca]
Generated Password [9Va1ZkYgiXtqnOUytqj63ympwhZOjqZi]
这个就是生成的账号密码

异常处理,可能会遇到jdk版本问题,请下载对于版本的jdk
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/nifi/bootstrap/BootstrapProcess has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 52.0
启动失败,可以看到是jdk版本要 65 ,需要jdk21的意思。
修改nifi-env.cmd,添加,或者直接在环境变量里设置JAVA_HOME的值
set JAVA_HOME="D:\env\openjdk-22.0.1_windows-x64_bin\jdk-22.0.1"

- 进入网页·
访问https://localhost:8443 进入网页ui界面

实验demo:

下面进行一个读取本地csv文件,然后导入到另外目录成json格式的实验,这里为了演示方便,csv数据写死在一个输入组件里。

数据准备:

title,author,score
你杀了谁,东野圭吾,7.1
黄仁勋:英伟达之芯,斯蒂芬·威特,7.3 

流程简介: 就是不断添加不同类型的processor,比如获取文件的,转换数据格式的,然后用线将不同组件链接起来,比如读取文件,链接到解析csv,链接的时候选择relationship,每个组件都会有relationship

实验流程:
- 添加一个组件作为输出数据源
- 添加一个转换数据格式的组件,ConvertRecord,转换csv成json格式
- 添加一个组件,将ConvertRecord都内容输出到本地文件

添加一个GenerateFLowFile的组件,用来生成一个FlowFile,FlowFile可以理解为一行数据,即这个组件会输出一行数据,这里生成一个csv数据

刚添加时有问题就会有黄色标,可以点击查看错误,来修正

每个组件都有properties来设置属性,这里点开来设置,这个组件输出的内容

- 再添加一个处理器,ConvertRecord,这个processor可以配置一个reader和writer,这里的话配置一个csv reader,用来解析第一个处理器传进来的数据。

点开properties,看到设置值里是空的,点击create new service创建一个配置。

然后将两个组件链接起来

可以看到还是有警告,是因为还有relationship没有设置,每个都要设置,

像failure就是失败时的,如果不需要进一步处理可以勾选terminate。success的等会会和链接到一个写入文件的组件里,这里测试也可以暂时设置为terminate先。
如果看到这种警告,就是刚刚添加的service还有有启动,打开properties,点击三个点,点go to service,把服务启动就行,在这里也可以进一步配置这些服务的属性

然后没有警告了,运行测试下,先启动第一个GenerateFlowFile,右键start

可以看到queued里有一个等待了,因为下一个组件还没启动,就在队列里了,再启动CovertRecord来消费。

启动后可以看到in了三个,由于没有输出,可以点击VIew Data Provenance来检查,输入的数据情况。

点击view detail,可以看到输入输出情况,

输出的已经是json格式了,然后可以,添加一个写出的processor,来输出到某个目录。
继续添加processor,

继续链接到一起

然后配置下putFIle的properties,设置写出的目录,
右键start,后可以看到目录以及有写出的文件了。

经验:
- 下拉框为空时,点击三点可以打开创建新service的菜单
- properties tab里配置完后可以点击verfication验证

相关文章:

Apache nifi demo 实验

Apache nifi 是个数据流系统,可以通过配置 自定义的流程来实现数据的转换。 比如可以配置一个流程,读取数据库里的数据,再转换,最后保存到本地文件。 这样可以来实现一些数据转换的操作,而不用特地编写程序来导入导出。…...

Leetcode 57-插入区间

给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示另一个区间的开始和…...

SpringCloud之Eureka、Ribbon、OpenFeign

目录1. SpringCloud Eureka(服务注册与发现组件)2. SpringCloud Ribbon(负载均衡与服务调用组件)3. SpringCloud OpenFeign(负载均衡与服务调用组件)SpringCloud:用于开发高度可扩展、高性能的分…...

如何在MacOS 10.15上安装Docker Desktop

前文提到MacOS 10.15上无法通过Homebrew安装最新版本的docker,自然想到了去安装更早版本的docker。在MacOS上安装Docker Desktop比安装Docker Engine要更方便一些,具体原因可以自己搜索。通过Docker Desktop的Release notes得知最后一个支持MacOS 10.15的…...

Moticon智能鞋垫传感器OpenGo:经济实用的运动科学研究与临床评估工具

Moticon智能鞋垫传感器OpenGo是运动科学研究领域的一款高性能工具,其无线设计和精准传感器为步态分析、平衡评估以及疾病诊断提供了稳定的数据支持。通过实时捕捉足底压力分布、动态变化及平衡状态,OpenGo 为研究人员和临床医生提供了深入洞察个体运动模…...

打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)

打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天) 前言最后 前言 说真的,用Unity工作这几年,经历的项目大大小小,对于场景的渲染算是有一定的经验,但涉及到HDRP高清渲染管线的了解&#xff0…...

nlp第十节——LLM相关

一、模型蒸馏技术 本质上是从一个大模型蒸馏出小模型,从小模型训练出来的概率分布(如自回归模型预测下一个字的概率分布)分别与大模型预测的概率分布和ground label求loss。与大模型预测的概率分布用KL散度求loss,与ground label用…...

Flutter管理项目实战

目录: 1、项目的构建和介绍 1、项目的构建和介绍 登录官网下载flutter的zip压缩包,解压到某个文件夹下即可,里面自带sdk的文件,无需再下载;创建项目时选定flutter的sdk的路径即可创建项目完成。 后续待完善&#xff0…...

智能差旅管理新范式:MyAgent如何重塑企业差旅全流程自动化

在快节奏的商业环境中,企业差旅管理长期面临着流程碎片化、人工操作繁复、合规风险高等痛点。传统模式下,员工需要反复填写纸质表单、逐级跑动审批,财务部门则要耗费大量时间核对票据,这种低效流程每年造成企业平均约15%的差旅管理…...

PostgreSQL 生产环境升级指南:pg_upgrade 快速完成版本升级!

前言 PostgreSQL 的版本号由主要版本号和次要版本号组成。例如,在 10.1 中,10 是主要版本,1 是次要版本。关于更多版本的规划,请参考 PostgreSQL 版本路线图。 版本号规则: PostgreSQL 10 及以后:版本号…...

UniApp 中封装 HTTP 请求与 Token 管理(附Demo)

目录 1. 基本知识2. Demo3. 拓展 1. 基本知识 从实战代码中学习,上述实战代码来源:芋道源码/yudao-mall-uniapp 该代码中,通过自定义 request 函数对 HTTP 请求进行了统一管理,并且结合了 Token 认证机制 请求封装原理&#xff…...

@update 的常见用法 Vue.js

在 Vue.js 中&#xff0c;update 是一个事件监听器&#xff0c;通常用于监听自定义组件或某些 Vue 原生组件&#xff08;如 <input> 或自定义组件&#xff09;的更新事件。它并不是 Vue 的核心 API&#xff0c;而是一种约定俗成的命名方式&#xff0c;用于处理组件内部状…...

基于开源库编写MQTT通讯

目录 1. MQTT是什么&#xff1f;2. 开发交互UI3. 服务器核心代码4. 客户端核心代码5. 消息订阅与发布6. 通讯测试7. MQTT与PLC通讯最后. 核心总结 1. MQTT是什么&#xff1f; MQTT&#xff08;Message Queuing Terlemetry Transport&#xff09;消息队列遥测协议&#xff1b;是…...

基于springboot+vue美食与健康分享推广网站

目录 项目介绍 图片展示 运行环境 项目介绍 管理员&#xff1a; 个人中心&#xff1a;修改个人信息、修改密码 美食分类管理&#xff1a;增删改查美食分类 商品分类管理&#xff1a;增删改查商品分类 热门美事管理&#xff1a;增删改查热门美食、以及查看评论、预览视频 在线…...

React面试葵花宝典之二

36.Fiber的更新机制 React Fiber 更新机制详解 React Fiber 是 React 16 引入的核心架构重构&#xff0c;旨在解决可中断渲染和优先级调度问题&#xff0c;提升复杂应用的流畅性。其核心思想是将渲染过程拆分为可控制的工作单元&#xff0c;实现更细粒度的任务管理。以下是其…...

计算机毕业设计SpringBoot+Vue.js装饰工程管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

从波士顿动力到Figure AI:探寻人工智能驱动的机器人智能化

一、引言 1.1 研究背景与意义 在科技飞速发展的当下,机器人智能化已成为全球科技竞争的关键领域,深刻影响着人类社会的生产与生活方式。从工业制造到日常生活服务,从医疗保健到探索未知领域,机器人正逐步渗透进各个行业,展现出巨大的发展潜力与应用价值。其智能化水平的…...

华为 VRP 系统简介配置SSH,TELNET远程登录

华为 VRP 系统简介&配置TELNET远程登录 1.华为 VRP 系统概述 1.1 什么是 VRP VRP&#xff08;Versatile Routing Platform 华为数通设备操作系统&#xff09;是华为公司数据通信产品的通用操作系统平台&#xff0c;从低端到核心的全系列路由器、以太网交换机、业务网关等…...

Token相关设计

文章目录 1. 双Token 机制概述1.1 访问令牌&#xff08;Access Token&#xff09;1.2 刷新令牌&#xff08;Refresh Token&#xff09; 2. 双Token 认证流程3. Spring Boot 具体实现3.1 生成 Token&#xff08;使用 JWT&#xff09;3.2 解析 Token3.3 登录接口&#xff08;返回…...

【计算机网络入门】初学计算机网络(九)

目录 1.令牌传递协议 2. 局域网&IEEE802 2.1 局域网基本概念和体系结构 3. 以太网&IEEE802.3 3.1 MAC层标准 3.1.1 以太网V2标准 ​编辑 3.2 单播广播 3.3 冲突域广播域 4. 虚拟局域网VLAN 1.令牌传递协议 先回顾一下令牌环网技术&#xff0c;多个主机形成…...

xss笔记与打靶(更新中)

这个文章好 https://blog.csdn.net/huangyongkang666/article/details/123624164?fromshareblogdetail&sharetypeblogdetail&sharerId123624164&sharereferPC&sharesource2401_88818565&sharefromfrom_link 什么是xss XSS&#xff08;跨站脚本攻击&…...

Lumoz Chain正式上线:AI 时代的新算力破局者

新的叙事和技术突破永远是推动行业前行的核心动力。当下&#xff0c;AI Agent无疑是最炙手可热的赛道之一。 当加密世界将目光投向AI领域时&#xff0c;大多数项目仍停留在以AI为工具或应用场景的层面&#xff0c;试图通过集成AI模型或优化链上功能来吸引用户。然而&#xff0…...

sql调优:优化响应时间(优化sql) ; 优化吞吐量

Sql性能调优的目的 1.优化响应时间>>优化sql 经过调优后&#xff0c;执行查询、更新等操作的时候&#xff0c;数据库的反应速度更快&#xff0c;花费的时间更少。 2.优化吞吐量 即“并发”, 就是“同时处理请求”的能力。 优化sql 尽量将多条SQL语句压缩到一句>…...

Linux常见操作命令

Linux系统拥有丰富的命令行工具&#xff0c;通过这些命令可以高效地完成各种系统管理和日常操作任务。以下是一些常见的Linux操作命令&#xff1a; 文件和目录操作&#xff1a; - 创建目录&#xff1a;使用 mkdir 命令&#xff0c;例如 mkdir test 可以创建名为 test 的目录。如…...

2020最新Java面试题

2020最新Java面试题 序Java基础JVMRedis 序 研发了这么多年&#xff0c;每天都在搬砖&#xff0c;斗转星移&#xff0c;从一个被面试者&#xff0c;成为了一个面试者。总感觉自己在面试的时候提出的问题没有一个由浅入深的感觉&#xff0c;总是东一个问题&#xff0c;西一个…...

递归遍历目录 和 普通文件的复制 [Java EE]

递归遍历目录 首先 先列出当前目录所包含的内容 File[] files currentDir.listFiles();if (files null || files.length 0) {// 若是空目录或非法目录, 则直接返回return;} 然后 遍历列出的文件, 分情况两种讨论 for (File f: files) {// 加个日志, 方便查看程序执行情…...

批量设置 Word 样式,如字体信息、段落距离、行距、页边距等信息

在 Word 文档中&#xff0c;我们可以做各种样式的处理。比如设置 Word 文档的字体样式、设置 Word 文档的段落样式以及设置 Word 文档的页面样式。我们通常可以在 Office 中完成这些操作&#xff0c;相信绝大部分场景我们也是这样完成的。但是如果我们手上有 1000 个 Word 文档…...

搜索赋能:大型语言模型的知识增强与智能提升

引言 近年来&#xff0c;大型语言模型&#xff08;LLM&#xff09;取得了显著的进展&#xff0c;并在各个领域展现出强大的能力。然而&#xff0c;LLM也存在一些局限性&#xff0c;尤其是在知识库方面。由于训练数据的局限性&#xff0c;LLM无法获取最新的知识&#xff0c;也无…...

c++ 预处理器和iostream 文件

在C中&#xff0c;预处理器和<iostream>头文件各自扮演关键角色&#xff0c;二者协同工作以实现程序的输入输出功能。以下是它们的详细关系和作用&#xff1a; 1. 预处理器的作用 处理预处理指令&#xff1a;预处理器在编译前执行&#xff0c;处理所有以#开头的指令&…...

ViewPager2跟ViewPager的区别

1都是用来实现页面切换的&#xff0c;ViewPager2是ViewPager的增强版和升级版&#xff0c;ViewPager2是基于RecyclerView实现&#xff0c;可以支持横向和竖向页面切换&#xff0c;只需在布局文件添加一个android:orientation"vertical"即可&#xff0c;ViewPager只支…...