Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka apachenifi&;卡夫卡整合_Apache Kafka_Apache Nifi - Fatal编程技术网

Apache kafka apachenifi&;卡夫卡整合

Apache kafka apachenifi&;卡夫卡整合,apache-kafka,apache-nifi,Apache Kafka,Apache Nifi,我不确定这个问题是否已经在某个地方得到了解决,但我在互联网上找不到有用的答案 我正在尝试将ApacheNIFI与使用ApacheNIFI的Kafka消费数据集成在一起。下面是我在继续讨论之前想到的几个问题 Q-1)我们的用例是——实时从卡夫卡读取数据,解析数据,对数据进行一些基本验证,然后将数据推送到HBase。我知道 ApacheNIFI是进行这种处理的合适人选,但是如果我们正在处理的JSON是一个复杂的JSON,那么构建工作流有多容易呢?我们是 最初考虑使用Java代码做同样的事情,但后来意

我不确定这个问题是否已经在某个地方得到了解决,但我在互联网上找不到有用的答案

我正在尝试将ApacheNIFI与使用ApacheNIFI的Kafka消费数据集成在一起。下面是我在继续讨论之前想到的几个问题

Q-1)我们的用例是——实时从卡夫卡读取数据,解析数据,对数据进行一些基本验证,然后将数据推送到HBase。我知道 ApacheNIFI是进行这种处理的合适人选,但是如果我们正在处理的JSON是一个复杂的JSON,那么构建工作流有多容易呢?我们是 最初考虑使用Java代码做同样的事情,但后来意识到这可以在NiFi中用最少的努力来完成。请注意,我们处理的80%数据来自 卡夫卡是简单的JSON,但20%是复杂的JSON(invovles数组)

问题2)编写卡夫卡时最棘手的部分是正确处理偏移量。ApacheNIFI在使用Kafka主题时如何处理偏移量?如何抵消 如果在处理过程中触发再平衡,是否会正确承诺?SpringKafka等框架提供了提交偏移量(在某种程度上)的选项,以备不时之需
再平衡是在加工过程中触发的。NiFi如何处理这个问题?

我已经在生产中的3节点NiFi集群中部署了许多管道,其中一个类似于您的用例

Q-1)为您的用例构建管道非常简单。因为您没有提到处理json所涉及的任务类型,所以我假设使用一般任务。涉及JSON的一般任务可以是模式验证,可以使用
ValidateRecord
处理器实现,使用
JoltTransformRecord
处理器进行转换,使用
EvaluateJsonPath
提取属性值,使用
convertJSONTAVRO
处理器等将json转换为其他格式,如avro。 Nifi使您能够灵活地独立扩展管道中的每个阶段/处理器。例如,如果使用JoltTransferMRecord进行转换非常耗时,则可以通过在
调度
选项卡下配置
并发任务
,将其扩展到在每个节点中运行
N
并发任务

Q-2)对于
ConsumerKafka_2_0
处理器而言,偏移管理是通过先提交NiFi处理器会话,然后提交Kafka偏移来处理的,这意味着默认情况下我们至少有一次保证。 当Kafka触发给定分区的使用者的重新平衡时,处理器会快速提交(处理器会话和Kafka偏移量)它所获得的任何内容,并将使用者返回池以供重用


ConsumerKafka_2_0在用户组成员更改或成员订阅更改时处理提交偏移量。当流程死亡、添加新流程实例或旧实例在失败后恢复生命时,可能会发生这种情况。还应注意订阅主题的分区数量在管理上进行调整的情况。

Pushpavanthar,关于Q-1,您是否有使用复杂JSON(涉及多个阵列)的经验。我们是否需要编写处理复杂问题的客户处理器?关于q-2,NiFi是否会处理提交的偏移量而不考虑重新平衡的原因?q-1)我确信Jolt Transformer可以处理任何类型的nester JSON。您将不得不花费很少的时间来理解jolt规范,并为您的用例派生一个规范。如果您能给出一个具体的json负载示例,以及您正在寻找的处理方式,我可以帮助您。问题2)我更新了上述答案,并提供了更多细节。