我想在火花集群中运行的火花作业使用Hazel Cast Java客户端进行Hazel cast连接。 Hazelcast作为kubernetes集群中的一个容器运行,并且我已经将Hazelcast服务公开为可以使用节点端口从kubernetes集群外部访问。从在火花集群中运行的Hazelcast java客户端访问运行在kubernetes集群节点内的hazelCast
面对多个Hazel投射吊舱在不同Kubernetes群集节点中运行的问题,这些节点内部获取一些专用IP。
下面是Java榛投,我现在用客户端配置:
cc = new ClientConfig()
var networkConfig:ClientNetworkConfig = cc.getNetworkConfig()
networkConfig.addAddress(kube_node1_IP,kube_node2_IP,kube_node3_IP)
networkConfig.setConnectionAttemptLimit(500)
cc.getSerializationConfig().addSerializerConfig(new SerializerConfig()
.setImplementation(new EventSerializer()).setTypeClass(EventClass))
.addPortableFactoryClass(1, keyFactoryClass)
例外回溯如下:
org.apache.spark.SparkException:作业因中止阶段失败: 阶段1.0中的任务0失败4次,最近失败:丢失任务0.3 阶段1.0中
com.hazelcast.core.HazelcastException:jav a.io.IOException:否 可用连接的地址为[10.2.36.5]:5701 at com.hazelcast.util.ExceptionUtil.peel(ExceptionUtil.java:73) at com.hazelcast.util.ExceptionUtil。 peel(ExceptionUtil.java:63) at com.hazelcast.util.ExceptionUtil.peel(ExceptionUtil.java:52) at com.hazelcast.util.ExceptionUtil.rethrow(ExceptionUtil.java:83) at com.hazelcast。 client.spi.ClientProxy.invokeOnPartition(ClientProxy.java:128) at com.hazelcast.client.spi.ClientProxy.invoke(ClientProxy.java:120) at com.hazelcast.client.proxy.ClientMapProxy.getInternal(ClientMapProxy。 java:225) at com.hazelcast.client.proxy.ClientMapProxy.get(ClientMapProxy.java: 220)
这里10.2.36.5
是其中一个榛子铸造吊舱的私有IP。
P.S. :如果只有单个吊舱,则相同配置没有问题。
是否需要外部负载均衡器? – abhihdr03