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实战教程的更多相关文章

  1. Spring Boot干货系列:(四)Thymeleaf篇

    Spring Boot干货系列:(四)Thymeleaf篇 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 Web开发是我们平时开发中至关重要的,这里就来介绍一下Spring Boo ...

  2. Chrome浏览器扩展开发系列之十四

    Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59      阅读:1361      评论:0      收藏:0    ...

  3. OSGi 系列(十四)之 Event Admin Service

    OSGi 系列(十四)之 Event Admin Service OSGi 的 Event Admin 服务规范提供了开发者基于发布/订阅模型,通过事件机制实现 Bundle 间协作的标准通讯方式. ...

  4. Java 设计模式系列(十四)命令模式(Command)

    Java 设计模式系列(十四)命令模式(Command) 命令模式把一个请求或者操作封装到一个对象中.命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复 ...

  5. Chrome浏览器扩展开发系列之十四:本地消息机制Native messagin

    Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 2016-11-24 09:36 114人阅读 评论(0) 收藏 举报  分类: PPAPI(27)  通过将浏览器 ...

  6. 高翔《视觉SLAM十四讲》从理论到实践

    目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...

  7. 逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式

    逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式 一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不 ...

  8. 视觉slam学习之路(一)看高翔十四讲所遇到的问题

      目前实验室做机器人,主要分三个方向,定位导航,建图,图像识别,之前做的也是做了下Qt上位机,后面又弄红外识别,因为这学期上课也没怎么花时间在项目,然后导师让我们确定一个方向来,便于以后发论文什么. ...

  9. 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

    下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/slambook 第二讲:初识SLAM 2.4.2 Hello SLAM(书本P2 ...

  10. 高博-《视觉SLAM十四讲》

    0 讲座 (1)SLAM定义 对比雷达传感器和视觉传感器的优缺点(主要介绍视觉SLAM) 单目:不知道尺度信息 双目:知道尺度信息,但测量范围根据预定的基线相关 RGBD:知道深度信息,但是深度信息对 ...

随机推荐

  1. Python 潮流周刊#47:当你的老师希望你去做开源

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  2. 第11課-Channel Study For Create Custom Restful Service

    这节课我们一起学习利用Mirth Connect的HTTP Listener源通道与JavaScript Writer目的通道搭建自定义Restful风格webapi服务. 1.新建名为'Custom ...

  3. 牛客网-SQL专项训练23

    ①假设创建新用户nkw,现在想对于任何IP的连接,仅拥有user数据库里面的select和insert权限,则列表语句中能够实现这一要求的语句是(B) 解析: 考察知识点-数据库授权命令: GRANT ...

  4. [FAQ] 设置 npm 镜像源

    查看 npm 源: $ npm config get registry> http://registry.npmjs.org/ 修改 npm 源: $ npm config set regist ...

  5. FileStream 的 FlushAsync 方法在 .NET Framework 与 .NET Core 行为的不同

    本文记录 FileStream 的 FlushAsync 方法在 .NET Framework 与 .NET Core 行为的不同 在使用 HID 设备进行 IO 通讯时,可以采用 FileStrea ...

  6. js原型,原型链(不断补充中)

    1.如何使用构造器? function Person(name, age) { this.name = name; this.age = age; } var man = new Person(&qu ...

  7. Go-Zero微服务快速入门和最佳实践(一)

    前言 并发编程和分布式微服务是我们Gopher升职加薪的关键. 毕竟Go基础很容易搞定,不管你是否有编程经验,都可以比较快速的入门Go语言进行简单项目的开发. 虽说好上手,但是想和别人拉开差距,提高自 ...

  8. 05.Java 方法详解

    1.方法的定义及调用 设计方法的原则:一个方法只完成一个功能,有利于后期的扩展 方法的定义: 修饰符(可选) 返回值类型 方法名(参数类型 参数名(可选)){ 方法体 return 返回值; } 2. ...

  9. git学习--GitHub上如何进行PR(Pull Request)操作

    目录 一.前言 二.实现步骤 2.1 将小红在GitHub上的Repository clone到小明的本地电脑 2.1.1 fork小红在GitHub上的Repository到小明的GitHub 2. ...

  10. gin-vue-admin 03 项目打包上线

    目录 作者视频 思路 环境要求 1. 配置nginx 2.打包前台vue代码 3.打包后台go代码 4. 上传代码到服务器 5. 后台运行power 6. 访问后台 开发场景: 1. nginx 配置 ...