elasticsearch配置說明

2021-06-29 00:40:57 字數 3498 閱讀 5331

elasticsearch.yml是elasticsearch主要的配置檔案,所有的配置都在這個檔案裡完成,一般情況下,預設的配置已經可以比較好地執行乙個集群了,但你也可以對其進行微調。

在環境變數中的引數可以用來作為配置引數的值,比如配置檔案裡舉的乙個例子為:

node.rack: $,再比如$等。

下面對其配置引數作一說明。

1.cluster.name

集群名稱,如果有多個集群,那麼每個集群名就得是唯一的。

1.node.data

集群中的節點名稱,比如前面說的82、83、84三颱機子每台都有乙個名稱,你也可以不設這個名稱,預設的集群啟動時會自己給每個節點初始化乙個名稱,但強烈建議這裡還是由自己設定比較好。

2.node.master

該節點是否是master,true表示是的,false表示否,預設是true.

3.node.data

該節點是否儲存資料,預設true表示是的。

對於上面兩個節點,如果你希望該節點只是乙個master,但不儲存資料,則應當設定為:

node.master: true

node.data: false

如果你希望該節點只儲存資料,但不是乙個master,則應該設定:

node.master: false

node.data: true

如果你既不希望該節點為乙個master,也不想它儲存資料,則應該設定為:

node.master: false

node.data: false

這種情況一般是你希望該節點僅僅是作為乙個搜尋負載均衡器,比如從各節點得到資料,聚合結果等。

4.  node.rack

這是與該節點相關聯的乙個屬性,用來標識某一節點,它的設定也是key:value的形式如node.rack: rack83,我對其進行設定後的輸出如下:,目前沒有發現它的作用在**,可以採用預設的不用設定。

5.node.max_local_storage_nodes

設定一台機子能執行的節點數目,一般採用預設的1即可,因為我們一般也只在一台機子上部署乙個節點。

1.  index.number_of_shards

設定乙個索引被分成的分片數,預設是5

2.index.number_of_replicas

設定乙個索引有幾個拷貝,預設為1。拷貝指的是其它節點對該節點的拷貝,比如在84上建立了乙個索引,那麼這個拷貝會存在於82和83上,這是乙個分布式的屬性。

拷貝越多,則搜尋效能越佳,而分片越多則索引建立效能越好。

1.path.conf

配置檔案目錄,預設為es根目錄下的config目錄。

2.path.data

索引儲存路徑,預設為es根目錄下的data目錄,可以有多個儲存路徑,各儲存路徑用逗號隔開,如:path.data: /path/to/data1,/path/to/data2

3.path.work

臨時檔案存放目錄,預設為es根目錄下的work目錄

4.path.logs

日誌檔案存放目錄,預設為es根目錄下的logs目錄。

5.path.plugins

外掛程式的安裝目錄,預設為es根目錄下的plugins目錄。

1.plugin.mandatory

這個屬性的值為各個外掛程式的名稱,如果該值裡所列的外掛程式沒安裝,則該節點將不能啟動,預設是沒有外掛程式。

1. bootstrap.mlockall

1.network.bind_host

es節點繫結的位址,為乙個ip位址(ipv4或ipv6)

2.network.publish_host

es發布的位址,其它節點通過這個位址與其進行通訊

3.network.host

該節點網路位址,也是乙個ip位址,如果設定了該屬性,則network.bind_host與network.publish_host都不用再設定了,比如我這裡三颱機子設定的值分別為:

118.200.108.82、118.200.108.83、118.200.108.84。

4.transport.tcp.port

節點之間通訊的埠,預設為9300,在我們應用程式中呼叫es的方法提交索引建立時也是使用的這個埠。

http訪問埠,預設是9200,通過這個埠,呼叫方可以索引查詢請求。

設定內容的最大容量,預設是100mb

是否禁止http訪問,預設是false。

gateway是一種儲存集群中各節點元資料(meta data)的狀態方式,這裡的元資料主要用來記錄所有的索引在建立時各自的設定和明確的型別對映。每次當元資料改變,比如乙個索引被加入或被刪除,這些變化都會通過gateway儲存起來。當集群啟動時,這些狀態將會從gateway中讀取並應用。

gateway.type

gateway型別,預設是local,也是es官方強烈建議的。

gateway.recover_after_nodes

在多少個節點啟動後,允許資料恢復程序啟動,預設是1

gateway.recover_after_time

設定資料恢復程序初始化的超時時間,預設是5分鐘

gateway.expected_nodes

設定在集群中的多少個節點啟動後馬上開始資料恢復程序(不用等到gateway.recover_after_time這個屬性設定的時間到)

這裡的設定是用來控制分片分配的程序,當各節點間進行初始化恢復、索引拷貝分配、再次負載均衡,或再增加或去掉節點的時候。

cluster.routing.allocation.node_initial_primaries_recoveries

初始化資料恢復時,併發恢復執行緒的個數,預設為4。

cluster.routing.allocation.node_concurrent_recoveries

新增刪除節點或負載均衡時併發恢復執行緒的個數,預設為4

indices.recovery.max_size_per_sec

設定資料恢復時限制的頻寬,預設為0,表示無限制。

indices.recovery.concurrent_streams

這個引數來限制從其它分片恢復資料時最大同時開啟併發流的個數,預設為5

discovery.zen.minimum_master_nodes

設定這個引數來保證集群中的節點可以知道其它n個有master資格的節點。預設為1,對於大的集群來說,可以設定大一點的值(2-4)。

discovery.zen.ping.timeout

設定集群中自動發現其它節點時ping連線超時時間,預設為3秒,對於比較差的網路環境可以高點的值來防止自動發現時出錯

discovery.zen.ping.multicast.enabled

設定是否開啟多播來發現來發現節點,預設是true

discovery.zen.ping.unicast.hosts

設定集群中master節點的初始列表,可以通過這些節點來自動發現新加入集群的節點。

elasticsearch配置詳解

elasticsearch的config資料夾裡面有兩個配置檔案 elasticsearch.yml和logging.yml,第乙個是es的基本配置檔案,第二個是日誌配置檔案,es也是使用log4j來記錄日誌的,所以logging.yml裡的設定按普通log4j配置檔案來設定就行了。下面主要講解下e...

Elasticsearch配置jieba分詞分析器

jieba分詞是中文裡面比較好的分詞器,而當前elasticsearch官方並不支援jieba分詞,但可以通過配置plugins的方式使用jieba分詞器作為es的analyzer。配置環境 mac os 10.12 elasticsearch 5.3.0 jieba 5.3.0 與es版本匹配 t...

ElasticSearch 優化配置

索引建立優化 house properties title price area createtime lastupdatetime cityenname regionenname direction distancetosubway subwaylinename subwaystationname...