# Java version update in running ES cluster

**URL:** <https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286>\
**Category:** Elasticsearch\
**Created:** [April 25, 2016, 9:06am UTC](https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286 "2016-04-25T09:06:51Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sunilmchaudhari](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sunilmchaudhari/32/9475_2.png) [@sunilmchaudhari](https://discuss.elastic.co/u/sunilmchaudhari)\
**Post date:** [April 25, 2016, 9:06am UTC](https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286/1 "2016-04-25T09:06:51Z")

</div>

Hi,  
I have 3 nodes running in ES cluster in production. There is little difference in jre version on those 3 machines.  
Now if I want to change version on master node then what is better way to change it with minimum data loss?  
I think I have to stop the cluster till I update java.  
can I make some other node master and stop the old master? Is there any risk of shard failure or corruption of data?

Please guide on this.

br,  
Sunil

---

<div class="post-metadata">

**Author:** ![jasontedor](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jasontedor/32/66992_2.png) [@jasontedor](https://discuss.elastic.co/u/jasontedor)\
**Post date:** [April 25, 2016, 12:42pm UTC](https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286/2 "2016-04-25T12:42:41Z")

</div>

> [@sunilmchaudhari](#):
>
> I have 3 nodes running in ES cluster in production.

What is your current master configuration? Do you have a single master-eligible node? Is every node master-eligible? Do you have `discovery.zen.minimum_master_nodes` set?

---

<div class="post-metadata">

**Author:** ![sunilmchaudhari](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sunilmchaudhari/32/9475_2.png) [@sunilmchaudhari](https://discuss.elastic.co/u/sunilmchaudhari)\
**Post date:** [April 26, 2016, 9:56am UTC](https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286/3 "2016-04-26T09:56:12Z")

</div>

Hi,  
Below is configuration on 3 nodes. One is master, others are data. discovery.zen.minimum\_master\_nodes is set to 1 onmaster node and commented on data nodes.

Host1-master  
node.master: true  
node.data: true  
discovery.zen.minimum\_master\_nodes: 1  
discovery.zen.ping.unicast.hosts: ["host1-ip-addr:9300"]

Host2-data  
node.master: false  
node.data: true  
#discovery.zen.minimum\_master\_nodes: 1  
#discovery.zen.ping.unicast.hosts: ["host:port"]

Host3-data  
node.master: flase  
node.data: true  
#discovery.zen.minimum\_master\_nodes: 1  
#discovery.zen.ping.unicast.hosts: ["host:port"]

br,  
Sunil

---

<div class="post-metadata">

**Author:** ![jasontedor](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jasontedor/32/66992_2.png) [@jasontedor](https://discuss.elastic.co/u/jasontedor)\
**Post date:** [May 6, 2016, 1:18am UTC](https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286/4 "2016-05-06T01:18:23Z")

</div>

Given your current configuration, it is not possible to upgrade the JVM without _some_ downtime or risking split brain or data loss. While there are ways to do it with very minimal downtime, if it is at all an option for you to just take a maintenance window and shut everything down that would be my recommendation. It's far better to do these sorts of operations in low-stress situations. You should add two more master-eligible nodes if you can and set `discovery.zen.minimum_master_nodes` to 2 so that in the future you can get by without taking downtime.

---

<div class="post-metadata">

**Author:** ![sunilmchaudhari](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sunilmchaudhari/32/9475_2.png) [@sunilmchaudhari](https://discuss.elastic.co/u/sunilmchaudhari)\
**Post date:** [May 6, 2016, 5:09am UTC](https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286/5 "2016-05-06T05:09:10Z")

</div>

Thank you very much Jason!! I will do that way.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 10:53pm UTC](https://discuss.elastic.co/t/java-version-update-in-running-es-cluster/48286/6 "2017-07-05T22:53:26Z")

</div>


