I don't think but yes you should set your node as a client node .client(true) and don't add too many settings.
Wondering if the port 9300 is opened on your nodes? -- David ;-) Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs > Le 14 août 2014 à 08:08, Manthan Shah <[email protected]> a écrit : > > Was that a really problem for above Error? I doubt this could be a reason. > Facing similar issue with 1.3.1 version > > >> On Monday, February 17, 2014 4:08:21 PM UTC+5:30, Dario Rossi wrote: >> There's a little mistake >> >> settings.put("node.data", true); >> >> should be >> >> settings.put("node.data", false); >> >> >> >> Il giorno lunedì 17 febbraio 2014 10:30:25 UTC, Dario Rossi ha scritto: >>> >>> Hello, >>> I'm in the process of moving away from the REST API to the JAVA one >>> (because we want to benefit from the data-less node advantages). >>> >>> I tried to startup the local node in this way (boot seems fine to me): >>> >>> String localhostname = java.net.InetAddress.getLocalHost().getHostName(); >>> >>> ImmutableSettings.Builder settings = >>> ImmutableSettings.settingsBuilder(); >>> >>> >>> settings.put("cluster.name", clusterName); >>> >>> //Node name >>> settings.put("node.name", localhostname + "-eslocalnode"); >>> >>> //This is key to configure a data less node >>> /* >>> >>> # 3. You want this node to be neither master nor data node, but >>> # to act as a "search load balancer" (fetching data from nodes, >>> # aggregating results, etc.) >>> # >>> # node.master: false >>> # node.data: false >>> >>> */ >>> settings.put("node.master", false); >>> settings.put("node.data", true); >>> >>> /* >>> >>> # By default, multiple nodes are allowed to start from the same >>> installation location >>> # to disable it, set the following: >>> # node.max_local_storage_nodes: 1 >>> >>> */ >>> settings.put("node.max_local_storage_nodes", 1); >>> >>> /* >>> >>> # Set a custom port for the node to node communication (9300 by >>> default): >>> # >>> # transport.tcp.port: 9300 >>> */ >>> if (tcpPort > 0) >>> settings.put("transport.tcp.port", tcpPort); >>> else >>> throw new IllegalArgumentException("tcpPort is not set"); >>> >>> /* >>> >>> # Disable HTTP completely: >>> # >>> # http.enabled: false >>> >>> I don't want the HTTP api to be available on the local data-less >>> nodes, so I disable it >>> >>> */ >>> >>> settings.put("http.enabled", false); >>> >>> >>> /** >>> * >>> * DISCOVERY PART!!! >>> * >>> * >>> * >>> */ >>> >>> settings.put("discovery.zen.ping.timeout", discoveryPingTimeout); >>> >>> String unicastHostsArr[] = discoveryUnicastHosts.split("\\s*,\\s*"); >>> >>> if (unicastHostsArr.length > 0) >>> settings.put("discovery.zen.ping.unicast.hosts", >>> unicastHostsArr); >>> settings.put("discovery.zen.ping.multicast.enabled", false); >>> Settings esSettings = settings.build(); >>> Node newNode = >>> NodeBuilder.nodeBuilder().local(true).settings(esSettings).node(); >>> node = newNode.start(); >>> >>> >>> (all variables are properly initialized I checked it). In particular, the >>> unicastHosts are just one host that is our dev server (and it is filled >>> with significant data) and the cluster name is the same. >>> >>> Anyway if I attempt a search using like: >>> >>> Client client = node.client(); >>> ActionFuture<SearchResponse> searchFuture = client.search(new >>> SearchRequest("journalindex")); >>> SearchResponse search = searchFuture.get(); >>> >>> >>> I get: >>> >>> Exception in thread "main" java.util.concurrent.ExecutionException: >>> org.elasticsearch.cluster.block.ClusterBlockException: blocked by: >>> [SERVICE_UNAVAILABLE/1/state not recovered / >>> initialized];[SERVICE_UNAVAILABLE/2/no master]; >>> at >>> org.elasticsearch.common.util.concurrent.BaseFuture$Sync.getValue(BaseFuture.java:288) >>> at >>> org.elasticsearch.common.util.concurrent.BaseFuture$Sync.get(BaseFuture.java:275) >>> at >>> org.elasticsearch.common.util.concurrent.BaseFuture.get(BaseFuture.java:113) >>> at >>> com.netaporter.cms.estests.test.EsDataLessNodeTest.main(EsDataLessNodeTest.java:32) >>> 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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) >>> >>> >>> any idea on why this is happening? > > -- > You received this message because you are subscribed to the Google Groups > "elasticsearch" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elasticsearch/1b089bd3-411e-444a-b2f7-20534ba75190%40googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/28D93982-2292-42E0-BC33-E7FF95C4638F%40pilato.fr. For more options, visit https://groups.google.com/d/optout.
