Elasticsearch(二)概念及安装、部署
跟部署有關(guān)的幾個(gè)名詞先介紹一下:
| node | 節(jié)點(diǎn)是一個(gè)es實(shí)例,一臺(tái)機(jī)器可以運(yùn)行多個(gè)實(shí)例,但是同一臺(tái)機(jī)器上的實(shí)例在配置文件中要確保http和tcp端口不同;一般一個(gè)機(jī)器只部署一個(gè) |
| cluster | 代表一個(gè)集群,集群中有多個(gè)節(jié)點(diǎn),其中有一個(gè)會(huì)被選為主節(jié)點(diǎn),這個(gè)主節(jié)點(diǎn)是可以通過選舉產(chǎn)生的,主從節(jié)點(diǎn)是對于集群內(nèi)部來說的。一般較大的集群中,一個(gè)節(jié)點(diǎn)不同時(shí)作為主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn) |
| shards | 因?yàn)镋S是個(gè)分布式的搜索引擎, 所以索引通常都會(huì)分解成不同部分, 而這些分布在不同節(jié)點(diǎn)的數(shù)據(jù)就是分片. ES自動(dòng)管理和組織分片, 并在必要的時(shí)候?qū)Ψ制瑪?shù)據(jù)進(jìn)行再平衡分配, 所以用戶基本上不用擔(dān)心分片的處理細(xì)節(jié).分片會(huì)造成冗余,但是提高了可用性 |
| replicas | ES默認(rèn)為一個(gè)索引創(chuàng)建5個(gè)主分片, 并分別為其創(chuàng)建一個(gè)副本分片. 也就是說每個(gè)索引都由5個(gè)主分片成本, 而每個(gè)主分片都相應(yīng)的有一個(gè)copy. |
我們來看一個(gè)es集群的部署結(jié)構(gòu):
?我們可以安裝head插件來查看es的分片狀況以及其他信息:
es-head插件查看es系統(tǒng)概覽_u013761206的專欄-CSDN博客
根數(shù)據(jù)更像個(gè)的,有幾個(gè)名詞,有參照比較好理解,選擇mysql的結(jié)構(gòu)來進(jìn)行對比:
| 索引庫(indices) | Database 數(shù)據(jù)庫 |
| |
| 類型(type) | Table 數(shù)據(jù)表 |
| |
| 文檔(Document) | Row 行 |
| |
| 域字段(Field) | Columns 列 |
| |
| 映射配置(mappings) | 每個(gè)列的約束(類型、長度) | 字段的數(shù)據(jù)類型、屬性、是否索引、是否存儲(chǔ)等特性 |
一:下載安裝es
參考:elasticsearch 6.8安裝 - 柴米油鹽醬醋 - 博客園
值得注意的是mater和node的比例是比較重要的:
- ES集群節(jié)點(diǎn)可以劃分為三種:主節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)和客戶端節(jié)點(diǎn)。
在生產(chǎn)環(huán)境下,如果不修改elasticsearch節(jié)點(diǎn)的角色信息,在高數(shù)據(jù)量,高并發(fā)的場景下集群容易出現(xiàn)腦裂等問題。默認(rèn)情況下,elasticsearch 集群中每個(gè)節(jié)點(diǎn)都有成為主節(jié)點(diǎn)的資格,也都存儲(chǔ)數(shù)據(jù),還可以提供查詢服務(wù)。這些功能是由兩個(gè)屬性控制的。
elasticsearch.yml?:
master - 主節(jié)點(diǎn):? node.master: true node.data: false主要功能:維護(hù)元數(shù)據(jù),管理集群節(jié)點(diǎn)狀態(tài);不負(fù)責(zé)數(shù)據(jù)寫入和查詢。 配置要點(diǎn):內(nèi)存可以相對小一些,但是機(jī)器一定要穩(wěn)定,最好是獨(dú)占的機(jī)器。------------------------------- data - 數(shù)據(jù)節(jié)點(diǎn): node.master: false node.data: true主要功能:負(fù)責(zé)數(shù)據(jù)的寫入與查詢,壓力大。 配置要點(diǎn):大內(nèi)存,最好是獨(dú)占的機(jī)器。-------------------------------------------- client - 客戶端節(jié)點(diǎn): elasticsearch.yml : node.master: false node.data: false 主要功能:負(fù)責(zé)任務(wù)分發(fā)和結(jié)果匯聚,分擔(dān)數(shù)據(jù)節(jié)點(diǎn)壓力。 配置要點(diǎn):大內(nèi)存,最好是獨(dú)占的機(jī)器-------------------------------------------- mixed- 混合節(jié)點(diǎn)(不建議): node.master: true node.data: true主要功能:綜合上述三個(gè)節(jié)點(diǎn)的功能。 配置要點(diǎn):大內(nèi)存,最好是獨(dú)占的機(jī)器。 特別說明:不建議這種配置,節(jié)點(diǎn)容易掛掉。其他說明
- 雖然上面章節(jié)中,未對單個(gè)服務(wù)器的磁盤大小進(jìn)行要求,但是整體ES集群的總磁盤大小要保證足夠。
簡單舉例
假定共計(jì)20臺(tái)機(jī)器,則可以按照如下配置:
| master | 3 | 16GB | 機(jī)器必須穩(wěn)定 |
| data | 12 | 31GB | 無 |
| client | 5 | 31GB | 無 |
?
二、運(yùn)行 & 關(guān)閉 elasticsearch
1.運(yùn)行elasticsearch :
編輯 /elasticsearch-1.7.3/bin/elasticsearch.in.sh, 設(shè)置 ES_MIN_MEM和ES_MAX_MEM,確保二者數(shù)值一致,或者可以在啟動(dòng)es時(shí)指定
bin/elasticsearch若想讓es后臺(tái)運(yùn)行,則?
bin/elasticsearch -d -Xms512m -Xmx512m
關(guān)閉elasticsearch:
前臺(tái)運(yùn)行:可以通過”CTRL+C”組合鍵來停止運(yùn)行?
后臺(tái)運(yùn)行,可以通過”kill -9 進(jìn)程號(hào)”停止.使用jps查看進(jìn)程號(hào)
四、es調(diào)優(yōu)
1、es禁用swap
禁止 swap,一旦允許內(nèi)存與磁盤的交換,會(huì)引起致命的性能問題。可以通過在 elasticsearch.yml 中?bootstrap.memory_lock:?true,以保持 JVM 鎖定內(nèi)存,保證 ES 的性能。
2、修改對當(dāng)個(gè)進(jìn)程占用內(nèi)存的限制
修改/etc/security/limits.conf, 在limits.conf中添加如下內(nèi)容 * soft memlock unlimited * hard memlock unlimited3、對應(yīng)增加虛擬內(nèi)存
修改elasticsearch下config目錄下的jvm.options參考:
-Xms4g //默認(rèn)是1g -Xmx4g //默認(rèn)是1gElasticSearch性能優(yōu)化實(shí)踐(JVM調(diào)優(yōu)+ES調(diào)優(yōu)) - 簡書
總結(jié)
以上是生活随笔為你收集整理的Elasticsearch(二)概念及安装、部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码坏味道
- 下一篇: 布隆过滤器避免redis缓存穿透