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:知道深度信息,但是深度信息对 ...
随机推荐
- 【笔记】join using&AVG
oracle using 在oracle中,using用于简化连接查询,只有当查询是等值连接和连接中的列必须具有相同的名称与数据类型时,才能使用using关键字进行简化 比如原来是 select s. ...
- 力扣453(java)-最小操作次数使数组元素相等(简单)
题目: 给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 .返回让数组所有元素相等的最小操作次数. 示例 1: 输入:nums = [1,2,3]输出:3解释:只需要3次操作 ...
- 第3章 python 爬虫抓包与数据解析
第 3章 Python 爬虫抓包与数据解析 3.1 抓包进阶 目前,我们已经会使用 Chrome 浏览器自带的开发者工具来抓取访问网页的数据包,但是这种抓包方法有局限性,比如只能监听一个浏览器选项卡, ...
- SQL 开发任务超 50% !滴滴实时计算的演进与优化
摘要:Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算.可部署在各种集群环境,对各种大小的数据规模进行快速计算.滴滴基于 Apache Flink 做了大 ...
- dubbo-go v3 版本 go module 踩坑记
简介: 该问题源于我们想对 dubbo-go 的 module path 做一次变更,使用 dubbo.apache.org/dubbo-go/v3 替换之前的 github.com/apache/d ...
- 业内首款云原生技术中台产品云原生 Stack 来了!
简介: 云原生 Stack 满足了各种典型场景下客户对于线下高集成平台的诉求,让企业数字话转型不受技术约束,专注业务本身,加速企业数字化迭代. 今天,企业数字化转型依然面临很大的挑战,虽然有很多新技术 ...
- JVM性能提升50%,聊一聊背后的秘密武器Alibaba Dragonwell
简介: 你要知道的关于Alibaba Dragonwell一些重要优化措施. 今年四月五日,阿里云开放了新一代ECS实例的邀测[1],Alibaba Dragonwell也在新ECS上进行了极致 ...
- [Contract] Truffle 使用流程
Installation $ npm install -g truffle Choose ethereum client (Ganache OR truffle build in `truffle d ...
- LabView中使用VISA设备清零时,会发送00
最近有为小伙伴跟我说他使用串口的时候通信遇到了问题,我看到他的在程序循环中使用了VISA设备清零控件,出于好奇我就复现了一下,发现每次调用VISA设备清零控件的时候,会主动向串口中发送00数据 一.测 ...
- 第二讲 Cadence建立工程和元件库
第二讲 Cadence建立工程和元件库 1.创建工程,设置图纸参数.Design Entry CIS / Orcad Capture CIS / Option /Design Template,可以设 ...