Book Image

Learning Elasticsearch

By : Abhishek Andhavarapu
Book Image

Learning Elasticsearch

By: Abhishek Andhavarapu

Overview of this book

Elasticsearch is a modern, fast, distributed, scalable, fault tolerant, and open source search and analytics engine. You can use Elasticsearch for small or large applications with billions of documents. It is built to scale horizontally and can handle both structured and unstructured data. Packed with easy-to- follow examples, this book will ensure you will have a firm understanding of the basics of Elasticsearch and know how to utilize its capabilities efficiently. You will install and set up Elasticsearch and Kibana, and handle documents using the Distributed Document Store. You will see how to query, search, and index your data, and perform aggregation-based analytics with ease. You will see how to use Kibana to explore and visualize your data. Further on, you will learn to handle document relationships, work with geospatial data, and much more, with this easy-to-follow guide. Finally, you will see how you can set up and scale your Elasticsearch clusters in production environments.
Table of Contents (11 chapters)
10
Exploring Elastic Stack (Elastic Cloud, Security, Graph, and Alerting)

How nodes discover each other

Zen discovery is the discovery module used by Elasticsearch. Since Elasticsearch is a distributed system, you can think of this module as a glue that keeps the cluster together. Cluster management and failure detection are handled automatically by Elasticsearch.

In the configuration file, there is a discovery section dedicated to zen discovery. One of the settings in the discovery section is discovery.zen.ping.unicast.hosts. This setting is a list of other hosts Elasticsearch is running, so that the node can join the existing nodes to form a cluster. When we start the elasticsearch2 instance, this instance will first try to ping the hosts in discovery.zen.ping.unicast.hosts. It will scan the ports 9300 to 9305 and find elasticsearch1 running at 192.168.0.1:9300. (Note that 9300 is the port for internal communication, 9200 is the HTTP server.) To join...