I want to have some "cold storage" nodes in my ES cluster, where i will move nodes that are old and rarely searched. (And also never indexed anymore).
I already setup the cluster to have 4 hot servers and 3 cold servers.
The cold servers have tons of storage space, but obviously less RAM.
Specifically, they have 16GB of RAM, with 8GB used for heap.
They store 342 Indices with a total of 1145 shards.
My issue is that some times i'm seeing "OutOfMemoryError: Java heap space" errors in the logs which are causing the cold nodes to go down, and thus making my entire cluster red.
When there is a move of a shard or a recovery, the heap usage is rising to 99% and stays there until eventually there is an OOM error.
How can i handle those situations? I want to keep the cold servers low-end, but still make the indices available.
reduce the number of shards for index in cold nodes (reindexation in hot nodes to remove the number of shards (ex : 1 par index) and after move to cold nodes)
yes it takes a lot of time (using scroll is not so bad), but really help to keep the cluster stable. i had a hot and cold nodes. but i add a middle level of nodes in the cluster to do this aggregation/reduce shards task. this middle nodes are used only for this kind of operations.
in Elasticsearch 2.3 or 2.4 it will be an reindex API (this reindex operation will be easier)
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.