elasticsearch 既能夠做爲一個獨立的搜索服務器,也能夠做爲一個運行在許多相互合做的服務器上,也就是集羣。node
做爲一個集羣的優勢是比較明顯的,能夠處理大型數據集,實現高可用性。服務器
集羣的名稱爲 cluster, 造成集羣的每一個服務器都稱爲節點 node。jvm
當文檔很是多時,因爲內存限制,磁盤能力,處理能力不足,沒法足夠快速的響應客戶請求等,一個節點可能不夠。elasticsearch
在此狀況下,數據能夠分爲較小的叫作分片 shard 的部分,所以數據能夠在集羣的節點中傳播。blog
當你查詢的索引分佈在多個分片上時, Elasticsearch 會把查詢發送給每一個相關的分片上,並把結果合併在一塊兒。索引
這些操做對應用程序都是透明的。內存
副本 replica 只是一個分片的精確複製,每一個分片能夠由0個或者多個副本。文檔
這樣來看,也就是說 elasticsearch 中能夠有多個相同的分片,其中一個爲主分片 primary shard 用來執行索引操做。io
其他的分片稱爲副本分片 replica shard。 在主分片丟失時,集羣會將副本提高爲新的主分片。ast
elasticsearch 配置文件在 conf 目錄下
其中 elasticsearch.yml 負責配置服務器的默認配置值。
jvm .options 中配置的是 jvm 的信息,默認分配的內存爲 1G,若是內存不夠,能夠再擴大。
當前的集羣配置: