如何为集群nifi设计模板

时间:2017-07-07 13:59:47

标签: apache-nifi

在设计nifi模板时,我们是否需要考虑底层集群?

这是我的简单流程

+-----------------+                         +---------------+                       +-----------------+
|                 |                         |               |                       |                 |
|  READ FROM      |                         |  MERGE        |                       |   PUT HDFS      |
|  KAFKA          |                         |  FILES        |                       |                 |
|                 +-----------------------> |               +---------------------> |                 |
|                 |                         |               |                       |                 |
|                 |                         |               |                       |                 |
|                 |                         |               |                       |                 |
+-----------------+                         +---------------+                       +-----------------+

我有3个节点集群。当系统运行时我检查“集群”菜单,看到只有主节点正在利用源,其他集群节点似乎空闲...问题是在这样的集群中我应该根据设计模板集群或nifi应该进行负载平衡。

我看到我的一位同事为群集上的每个节点创建了远程处理器,并在模板内放置了负载平衡器,是否需要? (如下所示)

                                                                   +------------------+
                                                                   |                  |                 +-------------+
                                                                   | REMOTE PROCESS   |                 |  input port |
                                                            +----> | GROUP FOR        |                 |    (rpg)    |
                                                            |      | NODE 1           |                 +-------------+
                                                            |      |                  |                        |
                                                            |      |                  |                        |
                                                            |      +------------------+                        v
+-----------------+               +-----------------+       RPG
|                 |               |                 |       |                                           +--------------+
|  READ FROM      |               |                 |       |                                           |              |
|  KAFKA          |               | LOAD BALANCER   |       |       +------------------+                | MERGE FILES  |
|                 +-------------> |                 +-------------> |                  |                |              |
|                 |               |                 |       |       |  REMOTE PROCESS  |                |              |
|                 |               |                 |       |       |  GROUP FOR       |                |              |
|                 |               |                 |       |       |  NODE 2          |                |              |
+-----------------+               +-----------------+       RPG     |                  |                +--------------+
                                                            |       +------------------+                       |
                                                            |                                                  |
                                                            |                                                  v
                                                            |
                                                            |       +-------------------+               +---------------+
                                                            |       |                   |               |               |
                                                            |       |   REMOTE PROCESS  |               | PUT HDFS      |
                                                            +-----> |   GROUP FOR       |               |               |
                                                                    |   NODE 3          |               |               |
                                                                    |                   |               |               |
                                                                    |                   |               |               |
                                                                    +-------------------+               +---------------+

除了远程集群之外,负载均衡器的用例是什么,我可以使用负载均衡器将流量分成多个处理器来加速运行吗?

1 个答案:

答案 0 :(得分:3)

Apache NiFi不会进行任何自动负载平衡或数据移动,因此您可以通过利用群集的方式设计数据流。如何执行此操作取决于数据流以及数据如何进入群集。

我曾写过这篇文章,试图总结一下这些方法:

https://community.hortonworks.com/articles/16120/how-do-i-distribute-data-across-a-nifi-cluster.html

在Kafka的情况下,您应该能够按照第一张图片(没有远程进程组)所示运行流程。这是因为Kafka是一个允许每个节点使用不同数据的数据源。

如果ConsumeKafka似乎只在一个节点上运行,可能有几个原因......

首先,确保没有为主节点安排ConsumeKafka。

其次,弄清楚你的Kafka主题有多少个分区。 Kafka客户端(由NiFi使用)将1个消费者分配给1个分区,因此如果您只有1个分区,那么您只能从中消耗1个NiFi节点。这是一篇进一步描述这种行为的文章:

http://bryanbende.com/development/2016/09/15/apache-nifi-and-apache-kafka