nifi

NiFi vs StreamSets(SDC)

十年热恋 提交于 2020-01-25 02:27:27
NiFi vs StreamSets(SDC) Posted on 2019-01-07 | Symbols count in article: 2.3k | Reading time ≈ 0:02 前面几篇文章分别介绍了 NiFi 和 StreamSets Data Collector (以下简称 SDC) 在一些场景下的使用配置,本文从几个维度简单对比这两个开源的DFM (Data Flow Management) 产品 数据流的定义 作为一款数据流处理平台,灵活的定义和管理数据流是最基本的能力 NiFi 的核心是对 Flowfile 生命周期的管理,核心组件 Processor、Flowfile Repo、FlowContent Repo、Data provenance 都是为其提供服务 在 NiFi 中,Processor 会对 Flowfile 进行 route、copy、modify、terminate 等操作,来完成对流式数据的管理,对不同状态的 Flowfile 都可以分出不同的数据流去处理 转存失败 重新上传 取消 转存失败 重新上传 取消 转存失败 重新上传 取消 而 SDC 没有 NiFi 那么灵活,首先 SDC 中限定了 Processor 的类型 SDC 中只有以下几种类型的 Processor Origin:数据源,用来生产数据 Processor

nifi 从mysql数据中读取数存入hive中

旧街凉风 提交于 2019-12-03 16:28:42
1、在hive中创建一张外部表 create external table news2(id string,title string,url string,content string) row format delimited fields terminated by '\t'; 之前的想法是从mysql读取数据,将数据转为json,再用ConvertJSONToSQL 转为hive sql 存入hive中,结果发现ConvertJSONToSQL 不支持hive 这是nifi的一个bug 如下图 作为替代方案,只能是用replaceText自己生成插入的sql语句。 在做的过程中发现,之前用的hive2.3.4 ,nifi并不支持hive2.x.x,随后把hive的版本降为1.22 整体流程图如下: 从mysql中读取数据,用 ExecuteSQL处理器,sql语句为select * from news 配置如下: ConvertAvroToJSON 将二进制流转为json, SplitJson 分割json对象 EvaluateJsonPath 获取json对象里面的属性 ReplaceText 替换成sql, Replacement Value INSERT INTO TABLE news2(id,title,url,content) VALUES ('${id}','$

How to get ISO string in Nifi getMongo Query Field

匿名 (未验证) 提交于 2019-12-03 01:34:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I'm trying to use expression languge to generate ISO string in Nifi getMongo Query field using following query, { "remindmeDate": { "$gte": "${now():format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",'GMT')}", "$lte": "${now():toNumber():plus(359999):format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",'GMT')}" } } But i'm getting invalid JSON error error as double quotes are not escaped. When we try to escape it using \ operator, nifi is not evaluating the expression language. Is there any method or workaround to get this working ? Thanks in advance 回答1: GetMongo

Import Modules in Nifi ExecuteScript

匿名 (未验证) 提交于 2019-12-03 01:26:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I am new to Nifi and python i want to execute my python script. So used ExecuteScript and tried to import certain modules. I have imported like this: import json , sftp , paramiko Though i have sftp installed, When i import it in Executescript, it says "Failed to process session. No module named sftp at line number 1" which - a sftp / usr / bin / sftp When importing paramiko also, got the same error. 回答1: The "python" engine used by ExecuteScript and InvokeScriptedProcessor is actually Jython, not pure Python. This means it cannot

nifi: how to change value of json?

匿名 (未验证) 提交于 2019-12-03 01:09:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: i have processor InvokeHTTP which gives json result. for instance: { "revision" : { "clientId" : "dc572274-4b71-11b6-e415-b91e391bcf4d", "version" : 7 }, "id" : "dc572260-4b71-11b6-0371-f73573ab44fe", "uri" : "http://x.x.x.x:9090/nifi-api/processors/dc572260-4b71-0371-73ab44fe", "position" : { "x" : -1021.9568138214972, "y" : 333.2029958718132 } } i want to change the value of version dynamically for each incoming response of InvokeHTTP. how to achieve this? 回答1: i could suggest ExecuteScript processor with groovy language import groovy.json

Apache Nifi技术内幕

匿名 (未验证) 提交于 2019-12-03 00:21:02
2.4 NiFi Controller Service应用介绍 Controller service是一个能被各个processor,reporting task以及其它service用于配置和任务执行的共享服务。举个具体的应用场景,当NiFi中创建了大量的数据流,且这些数据流都有从同一源数据库获取数据的需求。此时必然要考虑源数据库的连接数的问题,如果NiFi在各个数据流的访问数据库的处理器单元之间没有共享的连接机制,那么将会对源数据库产生一定不必要的开销。NiFi Controller Service的设计很好的解决了这种共享需求问题。 2.4.1 添加Controller Service 需要添加一个处理器单元,首先打开NiFi控制台右上方的全局菜单。如 点击Controller Settings,将会弹出NiFi Settings窗口。如 在NiFi Settings的窗口中一共有三个Tab分别为:General,Controller services和Reporting Tasks。 General tab主要用来配置NiFi实例的最大定时器驱动线程数以及最大事件驱动线程数。在General tab的右侧是Controller Services tab页,如 点击右上角的“+”按钮就可以添加Controller Service

Apache Nifi技术内幕

匿名 (未验证) 提交于 2019-12-03 00:21:02
2.4.3 为数据流添加Controller Service 为一个数据流添加Controller Service,你可以右击处理组然后选择Configure,如 也可以通过控制台的操作面板选择Configure,如 当从控制面板进入Controller Service添加配置页面,需要对于Controller Service的应用范围需要特别注意。在没有选中任何处理组的情况下点击控制面板添加配置完成的Controller Service的范围是当前父处理组的范围,它将会被应用到父处理组下的所有子处理组。如 Sub Process Group 1和 Sub Process Group 2都属于Parent Process Group,在没有选择任何处理组情况下,从控制面板进入Controller Service添加配置页添加的Controller Service的应用范围是Parent Process Group,那么Sub Process Group 1和 Sub Process Group 2都可以关联使用这个Controller Service,如 在选择了Sub Process Group 1处理组的情况下,从控制面板进入Controller Service添加配置页添加的Controller Service的应用范围是Sub process group 1,如

Apache Nifi技术内幕

匿名 (未验证) 提交于 2019-12-03 00:21:02
2.4.4 Controller Service分类介绍 AvroReader AvroReader解析Avro数据并且将每个Avro记录解析为一个独立的记录对象返回。解析Avro的schema可以来自于数据本身,也可以通过“Schema Access Strategy”属性配置的策略去Schema注册服务获取Schama。 AvroRecordSetWriter 将记录集的内容写成Avro二进制格式。Schama同样可以通过“Schema Access Strategy”属性配置的策略去Schema注册服务获取。 AvroSchemaRegistry 提供一个Schama集中注册管理的服务。可以通过添加动态属性来添加Schama,其中动态属性的名称就是Schama的名称,动态属性的值就是Schama。 ConfluentSchemaRegistry ??????????? CSVReader 解析CSV格式的数据,并将CSV文件的每一行作为一个单独的解析对方返回。默认情况下它会将CSV文件第一行认为是列名称,将之后的行作为实际的数据。 CSVRecordSetWriter 将记录集的内容写成CSV格式数据。默认第一行写的是列名称(如果想取消可将“Include Header Line”属性设置成false)。后面的行将会写入记录集的值。

nifi入门(2)-nifi的简单使用示例

匿名 (未验证) 提交于 2019-12-02 23:39:01
NiFi术语 FlowFile Processor :是NiFi中负责创建、发送、接收、转换、路由、拆分、合并和处理FlowFiles的业务组件。 它是NiFi用户可用于构建其数据流的最重要的构建块。 下载和安装NiFi NiFi,基于java开发,在使用NiFi之前,需要安装JDK或者是JRE.至少 jdk8 及以上版本。JDK的安装配置,具体的请自行查询相关的资料。 下载 http://nifi.apache.org/download.html 有两种打包选项,tar更多的是在linux操作系统下面使用,比如centos/ubuntu等;而zip一般在windows下面使用。当然 ,zip格式的,在linux下面,通过unzip解压后也照常可以安装使用。 下载完NiFi后,将文件解析到一非英文目录下面.解压后的目录如下: bin是可以运行的二进制文件, conf为配置文件, docs:为相关的文档文件; lib为运行需要的jar和nar(NiFi的打包后缀,类似于java-web工程中的war包) 启动NiFi 前提条件:已经正确安装的NiFi需要的JDK(JRE) Windows用户 :对于Windows用户,找到Nifi解压后的目录 ,进行到子目录 bin,双击 run-nifi.bat即可。 如果提示端口冲突,找到到conf下面的nifi.properties文件