Apache nifi 2.11.0 使用例子
一直以来习惯使用 kettle 工具实现 ETL 数据处理,由于升级安装了 Ubuntu24.4 桌面,在处理 SQLite 数据库时出现错误。于是尝试使用 Apache NiFi 处理数据,一边做一边学习,总结了两个小例子。
一、准备工作
一是在官网上下载了 zip 文件之后,自行解压至自己的目录,然后使用下面命令启动服务:
./nifi.sh start: 在后台启动NiFi
./nifi.sh stop:停止在后台运行的NiFii
./nifi.sh status:提供NiFi的当前状态
./nifi.sh run:在前台运行NiFi并等待 Ctrl+C 命令来关闭NiFi
个人使用的话,运行 ./nifi.sh run 命令,随时使用 Ctrl+C 方便退出。值得注意的是,在浏览器中输入 https://localhost:8443/,不是普通的 http:// 方式。
二是当服务启动之后,会出现登录窗口,要求您输入帐号密码。这有点象安装 mysql 8.0 时,系统自动帮您生成一个帐号密码,而是又不知道基本是什么内容。请执行 grep Generated logs/nifi-app*.log 命令,从日志文件中找到它们的内容,格式大致如下:
Generated Username [xxxxxx]
Generated Password [yyyyyy]
三是请使用 “Process Group” 组件来区分不同的工作任务,如图:

双击对应的 “Process Group” 面板,就能自动进入它的设计窗口。在整个页面的右下角最后一行,也显示对应的路径标签,随时可以返回主界面。
二、例子:将 CSV 文件转存为 JSON 文件
源文件:/home/infonous/Ourcause/data/assistant/input/incidents.csv
目标文件:/home/infonous/Ourcause/data/assistant/output/incidents.json
第一步:放置 GetFile 组件
从主页面的第一个图标 “Processor” 拖放到主界面,马上会弹出选择组件的新窗口,在筛选中输入“GetFile”,点击 Add 按钮:

GetFile 组件主要是设置三个属性:
Input Directory:/home/infonous/Ourcause/data/assistant/input/
File Filter:incidents.csv
Keep Source File:true 表读取之后删除文件 / false 表读取之后保留不删除文件
第二步:放置 ConvertRecord 组件
ConvertRecord 组件的两个属性:
Record Reader:加入 CSVReader
Record Writer:加入 JsonRecordSetWriter
实现一读一写的格式转换配合,在 Value 空格的右边有上下三个点 “...” 图标,点击就出现图片中的菜单,选择“Create new servce” 选项,然后自行配置属性。
值得注意的是,我们在桌面的任意空白处按鼠标右键,在弹出菜单中选择 “Controller Services”,就会进入到上面 CSVReader、JsonRecordSetWriter 这两个服务的列表,如图:
这两个服务组件的 “state” 状态必须为 "Enabled",既出现蓝色闪电图标。如果是在 “disnabled” 状态的话,点击行后面的连续三个上下点“...”图标,在下拉菜单中启用。
第三步:放置 UpdateAttribute 组件
在 Verification 前面有一个“+”号,点击新增一个属性:
filename:${filename:replace('.csv','.json')}
作用就是把 ConvertRecord 组件转换后生成的文件,由 incidents.csv 更改为 incidents.json
第四步,放置 PutFile 组件
Directory: /home/infonous/Ourcause/data/assistant/output/
顾名思义就是设置保存路径
PutFile 是流程的最后一个节点,当不想检查 log 日志的话,所以无论结果是 failure 或 success 都勾选 terminate 。
第五步 放置 LogAttribute 组件
在整个流程设计中,一共使用了两个 LogAttribute 组件(见图片一),便于检查 /log/nifi-app.log 日志文件。
当您把鼠标放于组件之上,便出现圆底白箭的小按钮,拖动它至下一步的组件,便出现 failure 或 success 等选项。
三、使用后记
可能是自己还不熟识这个工具,所以当下的个人感觉:并不好用。
附:友熊地理安全小程序二维码,感兴趣的朋友帮忙给点流量。谢谢


浙公网安备 33010602011771号