Elasticsearch配置文件示例示范
一 前言
在elasticsearch\config目錄下,有三個核心的配置文件:
- elasticsearch.yml,es相關(guān)的配置。
- jvm.options,Java jvm相關(guān)參數(shù)的配置。
- log4j2.properties,日志相關(guān)的配置,因為es采用了log4j的日志框架。
這里以elasticsearch6.5.4版本為例,并且由于版本不同,配置也不太也一樣,僅作參考!
二 elasticsearch.yml
2.1 Cluster
- 配置集群名稱,由多個es實例組成的集群,有一個共同的名稱。
cluster.name: my-application
- 集群端口設(shè)置。
transport.tcp.port: 9300
- 防止同一個shard的主副本存在同一個物理機(jī)上。
cluster.routing.allocation.same_shard.host:true
- 初始化數(shù)據(jù)恢復(fù)時,并發(fā)恢復(fù)線程的個數(shù),默認(rèn)是4個。
cluster.routing.allocation.node_initial_primaries_recoveries: 4
- 添加刪除節(jié)點或者負(fù)載均衡時并發(fā)恢復(fù)線程的個數(shù)。默認(rèn)是4個。
cluster.routing.allocation.node_concurrent_recoveries: 4
2.2 Node
- 節(jié)點名稱配置,一個es實例其實是一個es進(jìn)程,在集群中被稱為節(jié)點。如果一個服務(wù)器上配置集群,各節(jié)點的名稱不能重復(fù)。
node.name: node-1
- 為節(jié)點添加自定義屬性,
node.attr.rack: r1
- 該節(jié)點是否有資格成為主節(jié)點,默認(rèn)為true。
node.master: true
- 設(shè)置節(jié)點是否存儲數(shù)據(jù)。
node.data: true
- 設(shè)置默認(rèn)主分片的個數(shù),默認(rèn)為5片,需要說明的是,主分片一經(jīng)分配則無法更改。
index.number_of_shards: 5
- 設(shè)置默認(rèn)復(fù)制分片的個數(shù),默認(rèn)一個主分片對應(yīng)一個復(fù)制分片,需要說明的是,復(fù)制分片可以手動調(diào)整。
index.number_of_replicas: 1
- 設(shè)置數(shù)據(jù)恢復(fù)時限制的帶寬,默認(rèn)0及不限制。
indices.recovery.max_size_per_ser: 0
- 設(shè)置這個參數(shù)來限制從其它分片恢復(fù)數(shù)據(jù)時最大同時打開并發(fā)流的個數(shù),默認(rèn)為5。
indices.recovery.concurrent_streams: 5
- 設(shè)置數(shù)據(jù)恢復(fù)時限制的帶寬,默認(rèn)0及不限制。
indices.recovery.max_size_per_ser: 0
- 設(shè)置這個參數(shù)來限制從其它分片恢復(fù)數(shù)據(jù)時最大同時打開并發(fā)流的個數(shù),默認(rèn)為5。
indices.recovery.concurrent_streams: 5
2.3 Paths
- 存儲數(shù)據(jù)路徑設(shè)置,多個路徑以英文狀態(tài)的逗號分隔,默認(rèn)根目錄下的conf目錄。
path.data: /path/to/data # path.data: /path/to/data1,/path/to/data1
- 設(shè)置臨時文件存儲路徑,默認(rèn)是es目錄下的work目錄。
path.work: /path/to/work
- 日志文件路徑,默認(rèn)為根目錄下的logs目錄。
path.logs: /path/to/logs
- 設(shè)置日志文件的存儲路徑,默認(rèn)是es目錄下的logs目錄。
path.logs: /path/to/logs
- 設(shè)置插件的存放路徑,默認(rèn)是es目錄下的plugins目錄。
path.plugins: /path/to/plugins
2.4 Network
- 為es實例綁定特定的IP地址。
network.host: 192.168.0.1
上面的設(shè)置可以拆分為兩個參數(shù)。
network.bind_host: 192.168.0.1 # 設(shè)置綁定的ip地址,ipv4或ipv6都可以 network.publish_host: 192.168.0.1 # 設(shè)置其它節(jié)點和該節(jié)點交互的ip地址,如果不設(shè)置它會自動判斷,值必須是個真實的ip地址
- 為es實例設(shè)置特定的端口,默認(rèn)為9200端口。
http.port: 9200
2.5 Discovery
- 設(shè)置是否打開多播發(fā)現(xiàn)節(jié)點,默認(rèn)是true。
discovery.zen.ping.multicast.enabled: true
- 配置es單播發(fā)現(xiàn)列表,在es啟動時,通過這個列表發(fā)現(xiàn)別的es實例,從而加入集群。
discovery.zen.ping.unicast.hosts: ["host1", "host2"] discovery.zen.ping.unicast.hosts: ["10.0.0.1", "10.0.0.3:9300", "10.0.0.6[9300-9400]"]
discovery.zen.minimum_master_nodes設(shè)置是告訴集群有多少個節(jié)點有資格成為主節(jié)點,一般的規(guī)則是集群節(jié)點數(shù)除以2(向下取整)再加一。比如3個節(jié)點集群要設(shè)置為2,這個試著是為了防止腦裂問題。- 設(shè)置集群中自動發(fā)現(xiàn)其它節(jié)點時ping連接超時時間,默認(rèn)為3秒,對于比較差的網(wǎng)絡(luò)環(huán)境可以高點的值來防止自動發(fā)現(xiàn)時出錯。
discovery.zen.ping.timeout: 3s
2.6 Memory
- 啟動時鎖定內(nèi)存,默認(rèn)為true,因為當(dāng)jvm開始swapping時es的效率 會降低,所以要保證它不swap,可以把ES_MIN_MEM和ES_MAX_MEM兩個環(huán)境變量設(shè)置成同一個值,并且保證機(jī)器有足夠的內(nèi)存分配給es。 同時也要允許elasticsearch的進(jìn)程可以鎖住內(nèi)存,linux下可以通過ulimit -l unlimited命令
bootstrap.memory_lock: true
- 禁止swapping交換。
bootstrap.mlockall: true
2.7 Gateway
- 設(shè)置是否壓縮tcp傳輸時的數(shù)據(jù)。默認(rèn)是false不壓縮。
transport.tcp.compress: true
- 設(shè)置內(nèi)容的最大容量,默認(rèn)是100mb。
http.max_content_length: 100mb
- 是否使用http協(xié)議對外提供服務(wù)。默認(rèn)為true。
http.enabled: false
- 設(shè)置gateway的類型,默認(rèn)為本地文件系統(tǒng),也可以設(shè)置分布式文件系統(tǒng)、Hadoop的HDFS或者AWS的都可以。
gateway.type: local
- 在完全重新啟動集群之后阻塞初始恢復(fù),直到啟動N個節(jié)點為止,詳情參見Recovery
gateway.recover_after_nodes: 3
- 設(shè)置初始化數(shù)據(jù)恢復(fù)進(jìn)程的超時時間。默認(rèn)是5分鐘。
gateway.recover_after_time: 5m
- 設(shè)置該集群中節(jié)點的數(shù)量,默認(rèn)為2個,一旦這N個節(jié)點啟動,就會立即進(jìn)行數(shù)據(jù)恢復(fù)。
gateway.expected_nodes: 2
2.8 Various
- 刪除索引時需要顯式名稱。
action.destructive_requires_name: true
三 jvm.options
- 設(shè)置jvm堆的大小,最大值和最小值,應(yīng)該是一致的,并且應(yīng)該根據(jù)你的物理內(nèi)存決定。
-Xms1g # 設(shè)置最小堆為1g -Xmx1g # 設(shè)置最大堆為1g
四 log4j2.properties
這個配置文件,我們一般不修改其配置。
以上就是Elasticsearch配置文件示例示范的詳細(xì)內(nèi)容,更多關(guān)于Elasticsearch配置文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring?Cloud?Feign?使用對象參數(shù)的操作
這篇文章主要介紹了Spring?Cloud?Feign?如何使用對象參數(shù)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02
SpringBoot項目如何設(shè)置權(quán)限攔截器和過濾器
這篇文章主要介紹了使用lombok時如何自定義get、set方法問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Spring線程池ThreadPoolTaskExecutor的用法及說明
這篇文章主要介紹了Spring線程池ThreadPoolTaskExecutor的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
java Collection 之List學(xué)習(xí)介紹
本篇文章小編為大家介紹,java Collection 之List學(xué)習(xí)介紹。需要的朋友參考下2013-04-04
java.sql.SQLRecoverableException關(guān)閉的連接異常問題及解決辦法
當(dāng)數(shù)據(jù)庫連接池中的連接被創(chuàng)建而長時間不使用的情況下,該連接會自動回收并失效,就導(dǎo)致客戶端程序報“ java.sql.SQLException: Io 異常: Connection reset” 或“java.sql.SQLException 關(guān)閉的連接”異常問題,下面給大家分享解決方案,一起看看吧2024-03-03

