Elasticsearch配置參數與核心概念

在es根目錄下有一個config目錄,在此目錄下有兩個文件分別是elasticsearch.yml和logging.yml。

      logging.yml是日誌文件,es也是使用log4j來記錄日誌的,我在此文件中配置日誌級別。

      elasticsearch.yml是es的基本配置文件es的參數都在這個文件中,我們這裏結合此文件來介紹es的核心概念和參數。

1:集羣

       node.master: true表示此節點有資格競爭成爲主節點。

       cluster.name: elasticsearch表示es集羣的名稱可以自行更改

       discovery.zen.ping.multicast.enabled: false 集羣的自動發現機制,false不啓動

        discovery.zen.ping.unicast.hosts: ["host1","host2:port"] 告訴從節點主節點的位置,默認是9300端口。

 

        Es集羣由多個節點組成,其中一個爲主節點其他爲從節點。從節點通過競爭來確定哪個是主節點,一般在集羣中第一個啓動的符合條件的就是主節點。主節點負責管理集羣狀態包括管理分片和副本的狀態以及節點的增加和刪除。

       Es集羣具有去中心化的概念,我們可以訪問集羣中的任何一個節點來操作整個集羣,不管它是主節點還是從節點只要安裝了相關插件就行。

同一個網段內的es節點會自動互相感知自動組成集羣。

 

        自動發現機制

        Es是基於P2P的系統,當集羣啓動後會先通過廣播尋找存在的節點,再通過多播協議進行節點間的通信進而自動組建es集羣,同時也支持節點之間的通信。

        同一網段內節點組建集羣,首先啓動自動發現機制另外節點的集羣名稱要一致

                 discovery.zen.ping.multicast.enabled: true

                 cluster.name: elasticsearch

       如果不同網段的節點要組建集羣首先各個節點禁用自動發現機制然後給從節點指定主節點的位置,默認是9300端口。

                 discovery.zen.ping.multicast.enabled: false

                 discovery.zen.ping.unicast.hosts: ["host1","host2:port"]

       

         查看集羣狀態

         瀏覽器:http://192.168.79.131:9200/_cluster/health?pretty

{

  "cluster_name" :"shb01",

  "status" :"green",

  "timed_out" :false,

  "number_of_nodes": 1,

 "number_of_data_nodes" : 1,

 "active_primary_shards" : 0,

  "active_shards" :0,

 "relocating_shards" : 0,

 "initializing_shards" : 0,

 "unassigned_shards" : 0

}

2:shards分片

     index.number_of_shards: 5 分片數

     Es中索引庫會被拆分成多個分片,各個分片會存儲在不同的節點上以提高集羣的存儲能力從而構成分佈式的存儲和分佈式的查詢。

     通過index.number_of_shards參數指定分片數默認是5,分片數一旦指定集羣啓動後不能動態的修改。

3:replicas副本

        index.number_of_replicas:1副本數,默認爲1

        當某個節點宕機或被刪除後可以通過副本進行恢復,另外也可以提高查詢效率分流查詢實現負載均衡。分片和其副本不會被存儲與同一個節點上,如果只有一個節點則沒有副本。

4:持久化方式

        gateway.type:local

        索引的持久化方式默認是local本地方式,也可以存放在hdfs中。

        /usr/local/elasticsearch-1.4.4/data/elasticsearch/nodes/0/indices/shb01/0

        第一個0表示集羣中的節點編號,最後一個0表示分片。我的節點上一共有0到4,共5個分片。

5:transport

        交互方式,es集羣與客戶端使用tcp協議交互同時也支持http協議

        transport.tcp.port: 9300   節點之間通信使用此端口

        http.port: 9200    http請求使用9200端口

        我們在啓動es時可以看到es在監控這兩個節點

6:recovery

        數據恢復與重新分佈,當有節點加入或退出時es會根據機器的負載對索引分片進行重新分配,掛了的節點在重啓後也會進行恢復。

7:其他參數

        node.data: true 爲true表示此節點可以用來存儲數據。默認true

        http.enabled: false 默認不禁用http訪問

        http.max_content_length: 100mb 限制_bulk批處理的最大數據量。

        bootstrap.mlockall: true  禁用內存交互

發佈了0 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章