2015-08-08 53 views
2

我已經安裝了spark和cassandra集羣,並且在我的火花作業中使用了cassandra連接器。現在運行我的工作,我使用spark.cassandra.connection.host並在一個數據中心中傳遞種子節點的一個IP地址。我正在瀏覽連接器網站,其狀態如火花cassandra連接器中的多個接觸點

"The initial contact node given in spark.cassandra.connection.host can be any node of the cluster. The driver will fetch the cluster topology from the contact node and will always try to connect to the closest node in the same data center. If possible, connections are established to the same node the task is running on." 

我的查詢是如果聯繫節點關閉會發生什麼情況。 Spark將無法獲得集羣拓撲,因此無法工作。 我還用cassandra的nodejs連接器,在那裏我們提供了一個接觸點陣列。是否有可能在火花卡桑德拉連接器

回答

0

不,你不能傳遞一個主機數組到'spark.cassandra.connection.host'(雖然,如果你想,你可以編寫一個服務來檢查所有的連接主機,然後有條件地使用一個作爲你的SparkConfig)。

然而,從documentation,這聽起來像我們可以假設spark-cassandra會選擇任何工作節點(即只要你在主機上有一個節點,它會工作)。

spark.cassandra.connection.host中給出的初始聯繫節點可以是集羣中的任何節點。

而且,這聽起來像如果一個節點是向下,則該請求將重試在本地節點(未不同的主機)

如果在本地數據中心一些節點是向下和讀或寫操作失敗,操作將不會在不同數據中心的節點上重試。

希望這會有所幫助。

+0

是的,但我的問題仍未得到解答。那麼如果Spark所連接的節點關閉並且尚未發現拓撲,我認爲它將無法連接和檢索數據,如果發生什麼情況 – Nipun

+0

從我理解的情況來看...... spark沒有連接到特定的節點,它連接到主機,然後選擇一個節點。如果您的主機停機,那麼您的應用將失敗。如果主機上的所有節點都關閉,則應用程序將失敗。所以是的,如果你的主機關閉了,那麼它將無法檢索數據。 – dannypaz

+0

主機和節點有什麼區別?按照文檔「spark.cassandra.connection.host中給出的初始接觸節點可以是任何節點」 – Nipun

1

那麼,根據connector documentation

多個主機可以使用分隔的列表 逗號( 「127.0.0.1,127.0.0.2」)通過。這些僅是初始接觸點, 本地DC中的所有節點都將在連接時使用。

因此,隨意添加儘可能多的接觸點,讓您感覺舒適。只要至少有一個可以連接到我們的客戶,您就可以走了。

+0

哦,這很早就沒有。可能是新的火花cassandra連接器。 – Nipun

+0

@Nipun卡桑德拉怎麼樣?我現在正在研究它,主要是因爲我對其複製功能感興趣(跨數據中心,主要是爲了低延遲訪問)。 –

+0

那麼我們有一個2個數據中心的小設置。到現在爲止沒有投訴。由於我們有很多分析數據,因此我們主要對高寫入感興趣。只有cassandra指出它不是靈活查詢的數據庫。它主要是一個用於分析的數據庫 – Nipun