我有一个用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。所以它不应该有任何区别。 –