# I'm trying to setup a cluster with 2 nodes. one master node and other data node

**URL:** <https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870>\
**Category:** Elasticsearch\
**Created:** [May 30, 2018, 12:10pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870 "2018-05-30T12:10:55Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 30, 2018, 12:10pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/1 "2018-05-30T12:10:55Z")

</div>

Continuing the discussion from [Elasticsearch: Not enough master nodes discovered during pinging](https://discuss.elastic.co/t/elasticsearch-not-enough-master-nodes-discovered-during-pinging/118546/2):

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 30, 2018, 12:13pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/2 "2018-05-30T12:13:28Z")

</div>

how can I bind these nodes so that I can query on one elasticsearch

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 30, 2018, 1:50pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/3 "2018-05-30T13:50:18Z")

</div>

Can someone help me to understand this problem??

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 30, 2018, 1:55pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/4 "2018-05-30T13:55:22Z")

</div>

```
network.host: some_ip_that_can_be_accessed_from_other_machines

```

`network.host` can not be localhost or 127.0.0.1 if you want to create a cluster (have more than one node) or if you want to be able to access Elasticsearch from another host.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 30, 2018, 2:02pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/5 "2018-05-30T14:02:47Z")

</div>

Read [this](https://discuss.elastic.co/t/about-the-elasticsearch-category/21) and specifically the "Also be patient" part.

It's fine to answer on your own thread after 2 or 3 days (not including weekends) if you don't have an answer.

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 30, 2018, 2:11pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/6 "2018-05-30T14:11:42Z")

</div>

I already set network.host:\<ip\_address\_node\>  
But it still shows "elasticsearch: service not available"

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 30, 2018, 2:16pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/7 "2018-05-30T14:16:49Z")

</div>

Is the Elasticsearch service running?

If the service is running, try this on the machine running Elastic search and from another machine

```
curl http://<ip_address_node>:9200

```

That should work from both the Elasticsearch machine and from other machines.

If it doesn't work anywhere, check service  
If it works just on Elasticseach machine

- check network, like firewall rules
- make sure `<ip_address_node>` is an IP that can be reached for other machines

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 30, 2018, 2:24pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/8 "2018-05-30T14:24:18Z")

</div>

Share elasticsearch logs as well.

---

<div class="post-metadata">

**Author:** ![tdasch](https://avatars.discourse-cdn.com/v4/letter/t/58f4c7/32.png) [@tdasch](https://discuss.elastic.co/u/tdasch)\
**Post date:** [May 30, 2018, 2:53pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/9 "2018-05-30T14:53:11Z")

</div>

I probably lack the knowledge. Does discovery.zen.ping.unicast.hosts need to equal the actual network.host names?

The current settings provided by komal\_mittal: `discovery.zen.ping.unicast.hosts: ["node1", "node2", "node3", "node4"]`

Does it need to be: `discovery.zen.ping.unicast.hosts: ["private-ip_1st-node", "private-ip_2nd-node", "private-ip_3rd-node", "private-ip_4th-node"]`

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 30, 2018, 3:32pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/10 "2018-05-30T15:32:27Z")

</div>

Elasticsearch is working but i got error to search data

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 30, 2018, 3:43pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/11 "2018-05-30T15:43:29Z")

</div>

How do you know it's running?

---

<div class="post-metadata">

**Author:** ![JKhondhu](https://avatars.discourse-cdn.com/v4/letter/j/ed655f/32.png) [@JKhondhu](https://discuss.elastic.co/u/JKhondhu)\
**Post date:** [May 30, 2018, 3:51pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/12 "2018-05-30T15:51:06Z")

</div>

@komal_mittal why do you seek one sole master and one sole data node?

Why not start up a two node cluster as per the defaults(master, data, ingest) and have a second data node for replica shards to reside on thus giving you a `green` health status but also redundancy in the event one node goes down.

Where does this thread currently stand, what are the issues faced, what has been conducted thus far?

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 30, 2018, 5:21pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/13 "2018-05-30T17:21:21Z")

</div>

running by http://\<ip\_address\_node\>:9200  
It shows cluster name, uuid etc.

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 30, 2018, 5:27pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/14 "2018-05-30T17:27:21Z")

</div>

> [@JKhondhu](#):
>
> two node cluster as per the defaults(master, data, ingest) and have a second data node

this means  
first node:  
node.master: true  
node.data: true  
node.ingest: true  
second node:  
node.master: false  
node.data: true  
node.ingest: false

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 31, 2018, 6:49am UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/15 "2018-05-31T06:49:33Z")

</div>

> [@A\_B](#):
>
> If it works just on Elasticseach machine
> 
> - check network, like firewall rules
> - make sure `<ip_address_node>` is an IP that can be reached for other machines

Can you ping `<ip_address_node>` from other machines? What sort of machines are these, physical machines or VMs? If VMs, what hypervisor or platform do you run them on?

---

<div class="post-metadata">

**Author:** ![JKhondhu](https://avatars.discourse-cdn.com/v4/letter/j/ed655f/32.png) [@JKhondhu](https://discuss.elastic.co/u/JKhondhu)\
**Post date:** [May 31, 2018, 9:33am UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/16 "2018-05-31T09:33:49Z")

</div>

I meant have two nodes with all roles.

```auto
node.master: true
node.data: true
node.ingest: true

```

Where does this thread currently stand, what are the issues faced, what has been conducted thus far?

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 31, 2018, 1:06pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/17 "2018-05-31T13:06:30Z")

</div>

[2018-05-31T05:14:16,815][WARN][r.suppressed] path: /\_aliases, params: {}  
org.elasticsearch.discovery.MasterNotDiscoveredException: ClusterBlockException[blocked by: [SERVICE\_UNAVAILABLE/1/state not recovered / initialized];]  
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:213) [elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:317) [elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:244) [elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.cluster.service.ClusterApplierService$NotifyTimeout.run(ClusterApplierService.java:581) [elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:573) [elasticsearch-6.2.4.jar:6.2.4]  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0\_162]  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0\_162]  
at java.lang.Thread.run(Thread.java:748) [?:1.8.0\_162]  
Caused by: org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE\_UNAVAILABLE/1/state not recovered / initialized];  
at org.elasticsearch.cluster.block.ClusterBlocks.indicesBlockedException(ClusterBlocks.java:203) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.admin.indices.get.TransportGetIndexAction.checkBlock(TransportGetIndexAction.java:70) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.admin.indices.get.TransportGetIndexAction.checkBlock(TransportGetIndexAction.java:49) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doStart(TransportMasterNodeAction.java:135) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.start(TransportMasterNodeAction.java:127) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:105) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:55) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:167) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:139) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:81) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:83) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:72) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:405) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1253) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.getIndex(AbstractClient.java:1354) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.rest.action.admin.indices.RestGetAllAliasesAction.lambda$prepareRequest$0(RestGetAllAliasesAction.java:73) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:97) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:240) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:336) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:174) ~[elasticsearch-6.2.4.jar:6.2.4]  
at org.elasticsearch.http.netty4.Netty4HttpServerTransport.dispatchRequest(Netty4HttpServerTransport.java:500) ~[?:?]  
at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:80) ~[?:?]  
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[?:?]  
at org.elasticsearch.http.netty4.pipelining.HttpPipeliningHandler.channelRead(HttpPipeliningHandler.java:68) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[?:?]  
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[?:?]  
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[?:?]  
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[?:?]  
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[?:?]  
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[?:?]  
at i

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [May 31, 2018, 1:18pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/18 "2018-05-31T13:18:40Z")

</div>

org.elasticsearch.action.search.SearchphaseExcecutionException: all shards failed

Is there anything else in which I have to change??

---

<div class="post-metadata">

**Author:** ![JKhondhu](https://avatars.discourse-cdn.com/v4/letter/j/ed655f/32.png) [@JKhondhu](https://discuss.elastic.co/u/JKhondhu)\
**Post date:** [May 31, 2018, 3:21pm UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/19 "2018-05-31T15:21:43Z")

</div>

Can we go back a step, do you have a up and running two node cluster?  
Can you share the elasticsearch.yml from both nodes please, ensuring when pasting here to add with proper markdown.

---

<div class="post-metadata">

**Author:** ![komal\_mittal](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@komal\_mittal](https://discuss.elastic.co/u/komal_mittal)\
**Post date:** [June 1, 2018, 8:53am UTC](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870/20 "2018-06-01T08:53:43Z")

</div>

1st node configuration file:  
cluster.name: elastic\_cluster  
node.name: master  
node.master: true  
node.data: true  
node.ingest: true  
path.data: /path-1  
network.host: \<ip\_address\_1st\_node\>  
transport.host: 127.0.0.1  
http.host: 0.0.0.0  
discovery.zen.ping.unicast.hosts: ["\<ip\_address\_1st\_node\>","\<ip\_address\_2nd\_node\>"]

2nd node configuration file:  
cluster.name: elastic\_cluster  
node.name: master  
node.master: true  
node.data: true  
node.ingest: true  
path.data: /path-2  
network.host: \<ip\_address\_2st\_node\>  
transport.host: 127.0.0.1  
http.host: 0.0.0.0  
discovery.zen.ping.unicast.hosts: ["\<ip\_address\_1st\_node\>","\<ip\_address\_2nd\_node\>"]

This is what I changed in elasticsearch.yml file.

[Next page](https://discuss.elastic.co/t/im-trying-to-setup-a-cluster-with-2-nodes-one-master-node-and-other-data-node/133870.md?page=2)
