NiFi UI与创建流程

1. NiFi主界面

NiFi启动后,我们可以使用浏览器访问用户界面http://localhost:8080/nifi。可以通过修改“nifi.properties”,编辑http端口,默认端口是8080.在用户界面(UI)中可以设计和监视数据流程。
主界面中有多个工具,可以创建、管理数据流程。

image.png

全局菜单包含如下菜单项:
image

2. 添加一个"Processor"

我们可以通过在画布上添加"Processor"来开始创建数据流程。将“Processor”图标(
添加processor的按钮

)由组件状态栏的最左边拖到画布的中间(类似于方格纸的背景),然后将其放在此处。 当放开鼠标后会弹出一个“Add Proccesor”对话框:


image.png

NiFi当前版本有288Processor。做为一个简单的例子,这里只将本地磁盘中的文件导入NiFi。当开发人员创建处理器时,开发人员可以为该处理器分配“标签”。当开发人员开发一个“Processor”时,可以为这个Processor设置一个或多个标签(Tag)。这些标签可以被视为关键字。可以通过在对话框右上角的“过滤器(Filter)”框中键入关键字,来按这些标签或关键字名称进行过滤。例如,输入关键字“file”(必须输入英文)界面将显示一些用于处理文件的Processor。同样,通过输入“local”进行过滤也会很快缩小列表的范围。当选中列表中的一个Processor,将在对话框底部附近看到对“processor”的简短描述。可以概括的了解到“processor”的功能。 “GetFile Processor”的功能是"从磁盘目录中的文件创建FlowFiles。 NiFi会忽略至少没有读取权限的文件"。最后点击“add”按钮,Processor将被添加到画布中。
添加完成界面显示如下:
image.png

3. 配置“Processor”

双击画布中的“Proccessor“或者使用”Context menu“的”configure“菜单向都能进入,processor的配置对话框。


image.png

“configuration processor”对话框的“setting”页签,配置一些基本属性,每个processor都有相同的配置项。


image.png

“configuration processor”对话框的“scheduling”页签,配置一些任务调度属性,每个processor都有相同的配置项。
image.png

“configuration processor”对话框的“properties”页签,配置一些"processor"的属性,属性列表的内容取决于processor的类型。粗体属性是必须配置的属性。如果有必须属性没有配置则Processor不能启动。将“Input Directory”的属性设置为:“/Users/laofeng/Downloads/apps/data_in”,当processor启动后会扫描这个目录,发现新文件后会创建一个FlowFile发送到下游Processor。


image.png

有许多属性已经有了默认值,如果没有特别需要可以不修改这些默认值。将鼠标悬停在“?”上,会显示属性的说明性和是否支持表达式语言。
image.png

“configuration processor”对话框的“comments”页签,输入一些注释信息,类似代码里注释的作用。
image.png

4.连接Processor

每个处理器都有一组定义的“Relationships(关系)”,可以将数据发送到这些关系。当Processor将FlowFile的处理完成后,会将其传输到这些关系之一。这使用户可以根据处理结果来配置如何处理FlowFiles。例如,许多“Processor”定义两个关系:success(成功)和fail(失败)。然后,如果"processor"能够成功处理数据,数据将沿着“success”关系的connection流转到下游“Processor”。如果处理器由于某种原因无法处理数据,数据将沿着“fail”关系的connection流转下游“processor”,也可以自动关闭关系(Automatically Terminate Relationships),此种情况下数据将会被直接丢弃。

现在,已经添加并配置了“GetFile Processor”。可以在Processor的左上角看到一个Alert图标(
image
),表示该Processor处于无效状态。将鼠标悬停在此图标上,可以看到尚未定义成功关系。这只是意味着我们没有告诉NiFi Processor 路由到成功关系的数据该怎么做。 为了解决这个问题,按照上述相同的步骤添加另一个Processor,然后把“GetFile Processor”的成功关系连接到新的Processor上。简单起见,我们将仅记录FlowFile存在的属性到日志上,添加一个“LogAttributes Processor”就可以完成这个功能。

现在,我们可以将“GetFile Processor”的连接到到“LogAttribute Processor”。用鼠标悬停在“GetFile Processor”上,并且Connection Icon(
image.png
)将出现在Processor的中间。
image.png

image.png

我们可以将该图标从“GetFile Processor”拖到“LogAttribute Processor”。将弹出一个对话框“Create Connection”,选择要为此连接包括的关系。因为GetFile只有一个关系成功,所以将自动为选中它。
image.png

单击“设置”选项卡,可以提供一些选项来配置此连接的行为方式:


image.png

在此界面上可以为“Connection”命名,否则将会以“relationship“的名称命名,本例中将会被命名为"success". Id,不需要设置,系统会生成一个UUID。“FlowFile Expiration”,队列中数据超时时间,默认值“0 sec”代表用不超时。
当上游“processor”生产数据快,下游“processor”生产数据慢时,数据在Connection队列中不断积累,迟早会导致系统崩溃。“backpressure thresholds” 背压阈值,允许我们设置一个量,当队列中数据达到一定规模时,将通知上游“processor”暂定执行,以释放Connection队列中的压力,避免系统崩溃。当队列中FlowFile达到一定数量时或者FlowFile占用空间超过一定大小时,启动背压。如图:队列对象数超过10000个启动背压,数据超过1G存储空间启动背压。
“Load Balance Strategy ”,配置负载均衡策略。
最后,在对话框的右侧有优先级排序器(Selected Prioritizers ),通过配置此Prioritizers的实现,可以控制如何对队列数据进行排序。可以将优先级从“Available Prioritizers ”列表拖到“Selected Prioritizers ”列表中,以激活Prioritizers。可以同时使用多个Prioritizers,以使FlowFile优先级计算更加精确。

5.启动流程

在正式运行这个dataflow(数据流程)之前,还要将“log LogAttribute processor”的“success relationship”关闭。


image.png

此时整个dataflow(数据流程)处于停止行状态,“proccsor name”旁边显示一个红色的小正方(
image
)图标。
image.png

启动processor的两种方法:

  • 选中processor,在operate面板中点击“start”按钮(
    image

    )

  • 使用processor的右键菜单,使用“Start”菜单项

    启动后“proccsor name”旁边显示一个绿色的小三角形(
    image
    )图标,表示processor当前为运行状态。
    image.png

停止流程

停止processor的两种方法:

  • 选中processor,在operate面板中点击“stop”按钮(
    image

  • 使用processor的右键菜单,使用“Stop”菜单项。当processor处于运行状态时,右键菜单“start”菜单项将会变成“stop”菜单项


    image.png

6.验证路程

向“/Users/laofeng/Downloads/apps/data_in”目录投入文件,在ui上监控流程运行。
复制一个图片global-menu.png,大小约32,770 字节。执行速度非常快没有几乎观察不到中间过程。


image.png
  1. “LogAttribute processor“将FlowFile的属性,输出到了nifi-app.log中,如下所示:
2020-11-16 22:35:24,656 INFO [Timer-Driven Process Thread-7] o.a.n.processors.standard.LogAttribute LogAttribute[id=d1325141-0175-1000-444c-61b0bd3447e5] logging for flow file StandardFlowFileRecord[uuid=aca7f068-914a-49d4-9fe9-e9549cbaaed1,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1605449326182-2, container=default, section=2], offset=179510, length=32770],offset=0,name=global-menu.png,size=32770]
--------------------------------------------------
Standard FlowFile Attributes
Key: 'entryDate'
    Value: 'Mon Nov 16 22:35:24 CST 2020'
Key: 'lineageStartDate'
    Value: 'Mon Nov 16 22:35:24 CST 2020'
Key: 'fileSize'
    Value: '32770'
FlowFile Attribute Map Content
Key: 'absolute.path'
    Value: '/Users/laofeng/Downloads/apps/data_in/'
Key: 'file.creationTime'
    Value: '2020-11-16T17:37:34+0800'
Key: 'file.group'
    Value: 'staff'
Key: 'file.lastAccessTime'
    Value: '2020-11-16T21:37:28+0800'
Key: 'file.lastModifiedTime'
    Value: '2020-11-16T17:37:34+0800'
Key: 'file.owner'
    Value: 'laofeng'
Key: 'file.permissions'
    Value: 'rw-r--r--'
Key: 'filename'
    Value: 'global-menu.png'
Key: 'path'
    Value: '/'
Key: 'uuid'
    Value: 'aca7f068-914a-49d4-9fe9-e9549cbaaed1'
--------------------------------------------------

将文件原有的所有属性均处理成了FlowFile的属性,写入了日志文件。

7. Processor更多信息

由于每个processor都有多个不同的属性和关系,因此记住288个processor如何使用非常具有挑战性的。 为了解决这个问题,可以右键单击processor,然后选择“view usage”菜单项。 这将会弹出一个窗口显示当前processor的文档。只能说NiFi考虑周到。


image.png

弹出的文档窗口如下所示:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容