I'm testing on a scala client for voldemort. The client is on a isolated spark cluster and part of the code is as follows:
println("==============String store example=================");
// In production environment, the StoreClient instantiation should be done using factory pattern
// through a Framework such as Spring
# val bootstrapUrl = "tcp://DNSForNode0FromVoldemortCluster:6666" #for tcp connection
val factory = new HttpStoreClientFactory(new ClientConfig().setBootstrapUrls(bootstrapUrl))
val resolver = new ArbitraryInconsistencyResolver[Versioned[String]]
val client = new DefaultStoreClient[String, String]("test", resolver, factory, 3)
// put initial value
println("Putting an initial value")
client.put("some_key", "initial value")
// get the value
println("Getting Initial value")
var versioned = client.get("some_key")
And the voldemort cluster is a three node cluster with http-port 8081,8081,8082 respectively, and socket-port 6666,6668,6670 respectively.
==============String store example=================
Exception in thread "main" voldemort.client.BootstrapFailureException: No available bootstrap servers found!
at voldemort.client.AbstractStoreClientFactory.bootstrapMetadataWithRetries(AbstractStoreClientFactory.java:546)
at voldemort.client.AbstractStoreClientFactory.getRawStore(AbstractStoreClientFactory.java:284)
at voldemort.client.AbstractStoreClientFactory.getRawStore(AbstractStoreClientFactory.java:262)
at voldemort.client.DefaultStoreClient.bootStrap(DefaultStoreClient.java:99)
at voldemort.client.DefaultStoreClient.<init>(DefaultStoreClient.java:83)
at voldemortTest$.main(voldemortInOut.scala:34)
at voldemortTest.main(voldemortInOut.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:358)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
==============String store example=================
Putting an initial value
Exception in thread "main" voldemort.store.InsufficientOperationalNodesException: 2 get versionss required, but only 1 succeeded Original replication set :[0, 1] Known failed nodes before operation :[] Estimated live nodes in preference list :[0, 1] New failed nodes during operation :[1]
at voldemort.store.routed.action.PerformSerialRequests.execute(PerformSerialRequests.java:132)
at voldemort.store.routed.Pipeline.execute(Pipeline.java:212)
at voldemort.store.routed.PipelineRoutedStore.getVersions(PipelineRoutedStore.java:601)
at voldemort.store.routed.PipelineRoutedStore.getVersions(PipelineRoutedStore.java:81)
at voldemort.store.DelegatingStore.getVersions(DelegatingStore.java:90)
at voldemort.store.DelegatingStore.getVersions(DelegatingStore.java:90)
at voldemort.store.stats.StatTrackingStore.getVersions(StatTrackingStore.java:67)
at voldemort.store.stats.StatTrackingStore.getVersions(StatTrackingStore.java:40)
at voldemort.store.serialized.SerializingStore.getVersions(SerializingStore.java:147)
at voldemort.store.DelegatingStore.getVersions(DelegatingStore.java:90)
at voldemort.client.DefaultStoreClient.getVersions(DefaultStoreClient.java:172)
at voldemort.client.DefaultStoreClient.getVersionWithResolution(DefaultStoreClient.java:342)
at voldemort.client.DefaultStoreClient.getVersionForPut(DefaultStoreClient.java:357)
at voldemort.client.DefaultStoreClient.put(DefaultStoreClient.java:222)
at voldemortTest$.main(voldemortInOut.scala:38)
at voldemortTest.main(voldemortInOut.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:358)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
at voldemort.store.http.HttpStore.executeRequest(HttpStore.java:179)
at voldemort.store.http.HttpStore.getVersions(HttpStore.java:195)
at voldemort.store.http.HttpStore.getVersions(HttpStore.java:50)
at voldemort.store.nonblockingstore.ThreadPoolBasedNonblockingStoreImpl$3.request(ThreadPoolBasedNonblockingStoreImpl.java:84)
at voldemort.store.nonblockingstore.ThreadPoolBasedNonblockingStoreImpl$3.request(ThreadPoolBasedNonblockingStoreImpl.java:81)
at voldemort.store.nonblockingstore.ThreadPoolBasedNonblockingStoreImpl$6.run(ThreadPoolBasedNonblockingStoreImpl.java:129)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:129)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:151)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:125)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
at voldemort.store.http.HttpStore.executeRequest(HttpStore.java:167)
... 10 more
Are there any ways to work around this issue? Please suggest, thanks for your time.