我有一个用scala编写的示例spark应用程序,用于使用apache ignite将数据推送到缓存。据我所知,我们必须启动ignite.sh才能运行该应用程序。但是,如果未启动点火,则应用程序将永远挂起。我尝试更改默认的ignite配置,但没有用。
当未启动点火节点时,是否有一种方法可以杀死应用程序?
联接超时属性需要设置为TCPDiscoverSPI,但是我们不能将发现api对象与配置或config xml一起使用,因为它将引发任务不可序列化的异常。下面的代码非常适合这种情况,因为它可以在分布式模式下工作,而SPI不是可序列化的类,不能在分布式模式下共享,这激发了每个函数的期望。
val ic = new IgniteContext[String, String](sc,() => {
val cfg = new IgniteConfiguration();
val tc = new TcpDiscoverySpi();
tc.setJoinTimeout(60000);
cfg.setDiscoverySpi(tc);
cfg})
这消除了两个问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句