初识Apache NiFi
一. NiFi介绍
Apache NiFi支持功能强大且可扩展的数据路由,转换和系统中介逻辑的有向图。 Apache NiFi的一些高级功能和目标包括:
- 基于Web的用户界面
- 设计,控制,反馈和监控之间的无缝体验
- 高度可配置
- 容忍损失与保证交付
- 低延迟与高吞吐量
- 动态优先级
- 可以在运行时修改流程
- 备压
- 数据来源
- 跟踪从头到尾的数据流
- 专为扩展而设计
- 构建自己的处理器等等
- 实现快速开发和有效测试
- 安全
- SSL,SSH,HTTPS,加密内容等
- 多租户授权和内部授权/策略管理
二. 用户界面介绍
介绍NiFI界面之前先了解NiFi的基本对象FlowFile
FlowFile
表示在系统中移动的每个对象,对于每个对象,NiFi跟踪键/值对属性字符串的映射及其相关的零个或多个字节的内容。
简单理解:FlowFile就是文件,见图中红色所圈queue树为2,大小为0bytes;FlowFile是如何产生的呢?选中GenerateFlowFile右键执行后产生的。
选择队列右键选择list queue,然后就看到了2个FlowFile的相关信息了
1. Processor(处理器)
介绍:处理器是真正起作用的。 处理器对系统之间的数据路由,转换或中介进行某种组合。 处理器可以访问给定FlowFile及其内容流的属性。
处理器可以在给定的工作单元中对零个或多个FlowFiles进行操作,并提交工作或回滚。
使用:选中Processor图标拖入画布中,如图所示,然后选择你所需要使用的processor,processor的使用示例见下篇文章
2.Input Port(输入端口)
用于Process Group和Remote Process Group
在同一个Process Group中不需要使用Input Port,而在不同Process Group之间进行FlowFile传输时就需要使用到Input Port
见Process Group的例子
3.output Port(输出端口)
用于Process Group
在同一个Process Group中不需要使用Input Port,而在不同Process Group之间进行FlowFile传输时就需要使用到Input Port
见Process Group的例子
4.Process Group(进程组)
介绍:处理组是一组特定的进程及其连接,可以通过输入端口接收数据并通过输出端口发送数据。以这种方式,处理组允许仅通过组合其他组件来创建全新组件。
简单说就是对多个processor分成同一个组,根据你自己的业务或功能分组
使用:比如说我要从hdfs上获取一个目录下的所有文件数据(josn)同步到mysql库中,选中Process Group拖入画布中,如同所示:
1.进入GetHdfsFiles处理组,该组是获取hdfs上的数据,使用了ListHdfs、FetchHdfs、splitText处理器及Output Port
2.进入syncDataToMysql处理组,该组是把数据插入mysql中,使用了Input Port及ConvertJSONToSQL、PutSQL处理器
5.Remote Process Group(远程进程组)
不同NiFi单节点或集群之间的FlowFile传输,同一NiFi集群单节点的FlowFile分发到多个节点
6.Funnel(漏斗)
把多个输入合入到一条流中
7.Template(模板)
选择已导入到NiFi上的模板(XML文件)
8.Label(标签)
给Processor、Process Group、Remote Process Group等等打标签做说明
初识Apache NiFi的更多相关文章
- 【NIFI】 Apache NiFI 使用技巧
本章介绍NIFI组件的使用. 主要有:Nginx反向代理NIFI,配置SSLContextService Nginx反向代理NIFI 使用nginx反向代理NIFI配置如下 upstream nifi ...
- 【NIFI】 Apache NiFI 授权配置
当NIFI未配置需要单向SSL(例如LDAP,OpenId Connect等)的替代认证机制时,NiFi的Web服务器将要求访问用户界面的用户使用基于证书的客户端身份验证.启用备用身份验证机制会将We ...
- 【NIFI】 Apache NiFI 集群搭建
NiFI 集群介绍 NiFi集群架构 NiFi采用Zero-Master Clustering范例.集群中的每个节点对数据执行相同的任务,但每个节点都在不同的数据集上运行.其中一个节点自动选择(通过A ...
- 【NIFI】 Apache NiFI 安装及简单的使用
NiFI介绍 NiFi(NiagaraFiles)是为了实现系统间数据流的自动化而构建的.虽然术语“数据流”用于各种上下文,但我们在此处使用它来表示系统之间的自动和管理信息流 官网地址:http:// ...
- 【NIFI】 Apache NiFI 之 ExecuteScript处理(二)
本例介绍NiFI ExecuteScript处理器的使用,使用的脚本引擎ECMScript 接上一篇[NIFI] Apache NiFI 之 ExecuteScript处理(一) ExecuteScr ...
- 【NIFI】 Apache NiFI 之 ExecuteScript处理(一)
本例介绍NiFI ExecuteScript处理器的使用,使用的脚本引擎ECMScript FlowFile I / O简介 NiFi中的流文件由两个主要组件构成,即属性和内容.属性是关于内容/流文件 ...
- 【NIFI】 Apache NiFI 与 SQL 操作
本里需要基础知识:[NIFI] Apache NiFI 安装及简单的使用 查询SQL 1.拖入一个 Processor:ExecuteSQLRecord(执行sql记录) 2.配置,SETTINGS的 ...
- Apache Nifi在Windows环境下搭建伪群集及证书登录
代码地址如下:http://www.demodashi.com/demo/11986.html 前些时间做了关于Apache Nifi分布式集群的搭建分享,但很多时候要搭建分布式集群机器资源是个问题, ...
- Apache Nifi 开发
Apache NiFi是由美国过国家安全局(NSA)贡献给Apache基金会的开源项目.其设计目标是自己主动化系统间的数据流.基于其工作流式的编程理念.NiFi很易于使用,强大.可靠及高可配置. 两个 ...
随机推荐
- MethodInterceptor-方法拦截器
MethodInterceptor 方法拦截器,也就是aop拦截方法 1.使用示例 public interface MethodInterceptor extends Interceptor { O ...
- javascript函数详解
//函数的两种声明方式 //在同一个<script>标签中,函数的调用和声明位置可以没有先后的顺序,因为在同一个标签中,都是等加载到内存中,然后在运行 //但是如果是在两个script标枪 ...
- java-基础语法01
一.变量 1. 何为变量?:在数学中变量就是一个不确定的量,随时都会改变,在java中变量也是这样,只不过它是内存中装载数据的小盒子,你只能用它来存数据和取数据. 2. 变量的基本类型(四类八种),见 ...
- sqlserver、oracle数据库排序空值null问题解决办法
转:https://www.cnblogs.com/pacer/archive/2010/03/02/1676371.html [sqlserver]: sqlserver 认为 null 最小. 升 ...
- python数据库-MySQL与python的交互
一.python3中安装PyMySQL模块 命令安装: sudo apt-get install python-mysql 或者 pip install pymysql 2.使用在pyCharm中安装 ...
- 【POJ - 1426】Find The Multiple(dfs)
-->Find The Multiple 原文是英语,直接上中文了 Descriptions: 给定一个正整数n,请编写一个程序来寻找n的一个非零的倍数m,这个m应当在十进制表示时每一位上只包含 ...
- Linux命令学习-cd命令
Linux中,cd命令的全称是change directory,即改变目录的意思,主要用于切换工作目录到指定目录. 假设当前处于wintest用户的主目录,路径为 /home/wintest ,存在文 ...
- Nginx+Tomat8负载后,利用Redis实现Tomcat8的session共享
网上相应的文章应该都介绍,这里只特别记录下笔者在实操的过程出现的问题.此文件只针对tomcat 8 版本,之前版本可略过. tomcat 8 中的context.xml文件修改,增加以下配置. Jav ...
- tmux终端复用神器简单使用
创建命名Tmux会话(tmux new -s session_name)tmux new -s session_name chongchong 暂退Tmux会话(Ctrl + a d)直接关窗口 返回 ...
- 关于css样式加载的问题
今天我在学习jQuery的addClass操作时遇到了一个小问题,想来跟大家分享一下,避免初学者踩坑. 我的需求是制作一个表格,并让它隔行换色,在此基础上再加上鼠标悬浮变色的效果.(主要训练jQuer ...