我有一個用scala編寫的示例spark應用程序,用apache點燃將數據推送到緩存。據我所知,我們必須啓動ignite.sh才能運行應用程序。但如果點火沒有啓動,應用程序將永遠掛起。我試着改變默認的點火配置,但沒用。如何在apache ignite未啓動時停止應用程序?
點火節點沒有啓動時,有沒有辦法殺死應用程序?
我有一個用scala編寫的示例spark應用程序,用apache點燃將數據推送到緩存。據我所知,我們必須啓動ignite.sh才能運行應用程序。但如果點火沒有啓動,應用程序將永遠掛起。我試着改變默認的點火配置,但沒用。如何在apache ignite未啓動時停止應用程序?
點火節點沒有啓動時,有沒有辦法殺死應用程序?
的加入超時屬性需要被設置爲TCPDiscoverSPI,但我們不能使用配置或配置XML設置發現API對象,如它會拋出任務而不是可序列化的異常。下面是完美適用於這種情況的代碼,因爲它在分佈式模式下工作,並且SPI不是可串行化類以分佈式模式共享,這種情況引發了每個函數的期望。
val ic = new IgniteContext[String, String](sc,() => {
val cfg = new IgniteConfiguration();
val tc = new TcpDiscoverySpi();
tc.setJoinTimeout(60000);
cfg.setDiscoverySpi(tc);
cfg})
這清除了這兩個問題。
默認情況下,客戶端節點將無限期地等待至少一個服務器節點啓動。您可以配置它一定超時後失敗,如果沒有服務器:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="joinTimeout" value="60000"/>
</bean>
</property>
</bean>
我認爲,這不會有火花。它可能與正常的應用程序一起工作。但是,沒有火花。因爲,配置和SPI會拋出任務而不是可序列化的異常。我發現了這個解決方案,並且我正在將代碼粘貼到 – srujana
以下,您在使用XML時看到了什麼樣的不可序列化異常?一般來說,XML只是一個Spring文件,用於構造一個IgniteConfiguration對象,然後用它來創建IgniteContext。所以它不應該有任何區別。 –