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