ETL工具-nifi干货系列 第十四讲 nifi处理器PublishKafka实战教程
1、kettle的kafka生产者叫kafka producer,nifi中的相应处理器为PublishKafka,如下图所示:

可以很清楚的看到PublishKafka处理器支持多个版本的kafka,选择时要根据自己的kafka 版本选择相匹配的PublishKafka处理器,由于本人使用的是kafka2.x,所以这里选择PublishKafka_2_0处理器。
处理器xxxRecord和xxx的区别,如PublishKafka和PublishKafkaRecord:
处理器xxx:将整个 FlowFile 中的内容作为一个消息进行发送,
xxxxxxRecord:将 FlowFile 中的内容拆分成多个记录(或行),然后将每个记录作为一个单独的消息进行发送。
2、flow demo 设计,如下图所示:

GenerateFlowFile:产生自定义数据“我是java小金刚”
PublishKafka:将“我是java小金刚”写入kafka。
LogMessage:打印消息。
3、处理器PublishKafka属性配置,如下图所示:

Kafka Brokers:以 host:port 格式表示的 Kafka Broker,集群列表通过逗号,如192.168.101.5:9092,192.168.101.6:9092
Security Protocol: 用于与代理通信的安全协议。对应于 Kafka 客户端的 security.protocol 属性。这里我们使用默认值PLAINTEXT
SASL Mechanism:用于认证的 SASL 机制。对应于 Kafka 客户端的 sasl.mechanism 属性。这里我们使用默认值GSSAPI
Kerberos Service Name:与broker JAAS 配置中配置的 Kafka 服务器的主要名称匹配的服务名称。
Kerberos Credentials Service:支持使用 Kerberos 进行通用凭证认证的服务。
Kerberos Principal:用于与 Kerberos 进行身份验证的主体。
Kerberos Keytab:用于与 Kerberos 进行身份验证的 Keytab 凭据,这个属性需要提供一个文件。
SSL Context Service:支持与 Kafka brokers 进行 SSL 通信的服务。
Topic Name:要发布到的 Kafka 主题的名称。
Delivery Guarantee:指定确保消息发送到 Kafka 的要求。对应于 Kafka 的 'acks' 属性。根据具体情况选择,这里使用默认值。
Failure Strategy:如果处理器无法将数据发布到 Kafka,指定处理流文件的方式。有Route to Failure 、Rollback 两个选项。
Use Transactions:指定在与 Kafka 通信时,NiFi 是否应提供事务性保证。

Transactional Id Prefix:当 "Use Transaction" 设置为 true 时,KafkaProducer 配置 'transactional.id' 将生成一个 UUID,并以此字符串为前缀。
Attributes to Send as Headers (Regex):匹配所有 FlowFile 属性名称的正则表达式。任何名称与 regex 匹配的属性将作为标头添加到 Kafka 消息中。如果未指定,则不会将任何 FlowFile 属性添加为标头。
Message Header Encoding:对于作为消息标头添加的任何属性,通过 <Attributes to Send as Headers> 属性配置,此属性指示用于序列化标头的字符编码。
Kafka Key:消息的密钥。如果未指定,则如果存在流文件属性 'kafka.key',则将其用作消息密钥。请注意,同时设置 Kafka 密钥和分隔符可能会导致具有相同密钥的许多 Kafka 消息。通常情况下,这不是问题,因为 Kafka 不强制执行或假设消息和密钥的唯一性。但是,同时设置分隔符和 Kafka 密钥可能会导致 Kafka 上的数据丢失风险。在 Kafka 上进行主题压缩期间,将根据此密钥对消息进行去重。
Key Attribute Encoding:发出的FlowFiles具有一个名为'kafka.key'的属性。此属性规定了该属性值应如何编码。这是使用默认值。
Message Demarcator:指定用于在单个FlowFile中分隔多个消息的字符串(解释为UTF-8)。如果未指定,则将整个FlowFile内容用作单个消息。如果指定了分隔符,则将FlowFile内容拆分为此分隔符,并将每个部分作为单独的Kafka消息发送。要输入特殊字符,如'换行符',请使用CTRL+Enter或Shift+Enter,取决于您的操作系统。
Max Request Size:请求的最大大小,以字节为单位。对应于Kafka的'max.request.size'属性,默认为1 MB(1048576字节)。
Acknowledgment Wait Time:发送消息到Kafka后,这指示我们愿意等待从Kafka收到响应的时间量。如果Kafka在此时间段内未确认消息,FlowFile将被路由到'failure'。
Max Metadata Wait Time:发布者在执行“发送”调用期间等待获取元数据或等待缓冲区在“发送”调用之前刷新的时间量,超过此时间将导致整个“发送”调用失败。对应于Kafka的'max.block.ms'属性。
Partitioner class:指定用于计算消息分区ID的类。对应于Kafka的'partitioner.class'属性。
Partition:指定哪些分区记录将会发送消息。
Compression Type:这个参数允许你为此生产者生成的所有数据指定压缩编解码器。
动态属性:如kafka用户名和密码:Username、Password。
4、运行nifi flow,通过kafka-ui 查看kafka中的数据,如下图所示:


ETL工具-nifi干货系列 第十四讲 nifi处理器PublishKafka实战教程的更多相关文章
- Spring Boot干货系列:(四)Thymeleaf篇
Spring Boot干货系列:(四)Thymeleaf篇 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 Web开发是我们平时开发中至关重要的,这里就来介绍一下Spring Boo ...
- Chrome浏览器扩展开发系列之十四
Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59 阅读:1361 评论:0 收藏:0 ...
- OSGi 系列(十四)之 Event Admin Service
OSGi 系列(十四)之 Event Admin Service OSGi 的 Event Admin 服务规范提供了开发者基于发布/订阅模型,通过事件机制实现 Bundle 间协作的标准通讯方式. ...
- Java 设计模式系列(十四)命令模式(Command)
Java 设计模式系列(十四)命令模式(Command) 命令模式把一个请求或者操作封装到一个对象中.命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复 ...
- Chrome浏览器扩展开发系列之十四:本地消息机制Native messagin
Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 2016-11-24 09:36 114人阅读 评论(0) 收藏 举报 分类: PPAPI(27) 通过将浏览器 ...
- 高翔《视觉SLAM十四讲》从理论到实践
目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...
- 逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式
逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式 一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不 ...
- 视觉slam学习之路(一)看高翔十四讲所遇到的问题
目前实验室做机器人,主要分三个方向,定位导航,建图,图像识别,之前做的也是做了下Qt上位机,后面又弄红外识别,因为这学期上课也没怎么花时间在项目,然后导师让我们确定一个方向来,便于以后发论文什么. ...
- 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM
下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/slambook 第二讲:初识SLAM 2.4.2 Hello SLAM(书本P2 ...
- 高博-《视觉SLAM十四讲》
0 讲座 (1)SLAM定义 对比雷达传感器和视觉传感器的优缺点(主要介绍视觉SLAM) 单目:不知道尺度信息 双目:知道尺度信息,但测量范围根据预定的基线相关 RGBD:知道深度信息,但是深度信息对 ...
随机推荐
- 【Oracle】对一个已经拥有重复数据的表的列设置唯一性约束
对一个已经拥有重复数据的表的列设置唯一性约束 在这种情况下创建唯一性约束,可以发现会报错,通常为由于存在重复的键值,无法生效唯一性约束 最简单的方法,就是删除重复的记录,这样就可以按照正常流程,创建唯 ...
- Kruise Rollout:灵活可插拔的渐进式发布框架
简介: Kruise Rollout 是 OpenKruise 社区开源的渐进式交付框架.Kruise Rollout 支持配合流量和实例灰度的金丝雀发布.蓝绿发布.A/B Testing 发布,以及 ...
- EventBridge 在 SaaS 企业集成领域的探索与实践
简介: 当下降本增效是各行各业的主题,而 SaaS 应用作为更快触达和服务业务场景的方式则被更多企业熟知和采用.本文将结合实际业务场景讲述在 SaaS 行业的洞察与 SaaS 集成的探索实践. 作者: ...
- 阿里云EMAS旗下低代码平台Mobi开放定向内测
简介:[低代码深度共创]EMAS旗下低代码平台Mobi开放定向内测名额,限时限量,参与调研先到先得! Mobi是面向全端(Web.Native App.H5.全平台小程序等)场景,模型驱动的低代码开 ...
- 从技术到科学,中国AI向何处去?
简介: 如果从达特茅斯会议起算,AI已经走过65年历程,尤其是近些年深度学习兴起后,AI迎来了空前未有的繁荣.不过,最近两年中国AI热潮似乎有所回落,在理论突破和落地应用上都遇到了挑战,外界不乏批评 ...
- netcore热插拔dll
项目中有有些场景用到反射挺多的,用到了反射就离不开dll的加载.此demo适用于通过反射dll运行项目中加载和删除,不影响项目. ConsoleApp: 1 using AppClassLibrary ...
- .net 记录http请求
记录http请求 环境 .net7 一.过滤器(Filter) 这个过程用的的是操作过滤器(ActionFilter) 二. 2.1 继承IAsyncActionFilter 2.2 重写OnActi ...
- pikachu靶机练习平台-xss
第一题:反射性xss(get) 输出的字符出现在url中 第二题:反射性xss(post) 登录后输入<script>alert(1)</script> 第三题:存储型xss ...
- 07. C语言程序执行流程控制
[有条件执行语句] if esle 语句 if else 语句根据一个条件确定是否执行一段代码,执行条件是一个布尔值,布尔值为true则执行,为false则不执行,同时可以设置不符合条件时执行的语句. ...
- WebKist Inside: CSS 样式表的组成
1 StyleSheet 一张 StyleSheet 由一系列 Rules 组成,这些 Rules 可以分成 2 大类: 1 Style Rule 2 At-Rule 下面的例子展示了 Style R ...