2017-07-07 37 views
2

設計nifi模板時,我們是否需要考慮底層集羣?如何爲集羣設計模板nifi

這裏是我的簡單流程

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

我有3個節點的集羣。當系統運行時我檢查「集羣」菜單中,只有主節點正在使用來源看,其他羣集節點似乎閒置...問題是在這樣一個集羣中,我應該根據集羣設計模板還是應該進行負載平衡。

我看到我的一位同事爲集羣上的每個節點創建了遠程處理器,並將負載均衡器放在模板內部,這是否是必需的? (如下圖所示)

                +------------------+ 
                    |     |     +-------------+ 
                    | 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   |    |    | 
                    |     |    |    | 
                    |     |    |    | 
                    +-------------------+    +---------------+ 

什麼是用例的負載平衡器,除了遠程集羣,我可以使用負載均衡流量分成幾個處理器用來加快操作?

回答

3

Apache NiFi不會執行任何自動負載平衡或數據移動,因此您需要以利用羣集的方式設計數據流。如何做到這一點取決於數據流和數據如何被帶入集羣。

我寫這篇文章的一次嘗試和總結的方法:

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

在你的情況下與卡夫卡,你應該能夠有如圖的第一張圖片運行流量(不遠程進程組)。這是因爲Kafka是一個允許每個節點使用不同數據的數據源。

如果ConsumeKafka似乎只在一個節點上運行,有可能是幾個方面的原因...

首先,確保ConsumeKafka是不是隻安排了主節點。

其次,找出您的卡夫卡主題有多少個分區。 Kafka客戶端(由NiFi使用)將爲1個分區分配1個用戶,因此如果只有1個分區,則只能有1個NiFi節點消耗它。下面是文章進一步描述這種行爲:

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

+0

「首先,確保ConsumeKafka是不是隻安排了主節點。」 yesss ..這是問題..謝謝 – ygk