概述
最近工作中有用到ES ,當(dāng)然少不了自己裝一個服務(wù)器搗鼓。本文的ElasticSearch 的版本:
7.17.3
一、下載 ElasticSearch
點此下載
下載完成后上傳至 Linux 服務(wù)器,本文演示放在: /root/ 下,進行解壓:
tar -zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz
二、配置 JDK 環(huán)境
ES比較耗內(nèi)存,建議虛擬機4G或以上內(nèi)存,jvm1g以上的內(nèi)存分配。運行Elasticsearch,需安裝并配置JDK。 各個版本對Java的依賴Elasticsearch 7.0開始,內(nèi)置了Java環(huán)境
。ES的JDK環(huán)境變量生效的優(yōu)先級配置順序ES_JAVA_HOME>JAVA_HOME>ES_HOME
:
-
ES_JAVA_HOME
:這個環(huán)境變量用于指定Elasticsearch使用的Java運行時環(huán)境的路徑。在啟動Elasticsearch時,它會檢查ES_JAVA_HOME環(huán)境變量并使用其中的Java路徑。 -
ES_HOME
:這個環(huán)境變量指定Elasticsearch的安裝路徑。它用于定位Elasticsearch的配置文件、插件和其他相關(guān)資源。
設(shè)置ES_HOME環(huán)境變量可以讓您在命令行中更方便地訪問Elasticsearch的目錄結(jié)構(gòu)和文件。
vim /etc/profile
#設(shè)置ES_JAVA_HOME和ES_HOME的路徑
export ES_JAVA_HOME=/root/elasticsearch-7.17.3/jdk/
export ES_HOME=/root/elasticsearch-7.17.3
# 保存并退出
#執(zhí)行以下命令使配置生效
source /etc/profile
三、配置ElasticSearch
修改elasticsearch.yml配置:
cd /root/elasticsearch-7.17.3
vim config/elasticsearch.yml
#開啟遠(yuǎn)程訪問
network.host: 0.0.0.0
#單節(jié)點模式 初學(xué)者建議設(shè)置為此模式
discovery.type: single-node
注意
:此文件為yml 格式的配置文件,鍵和值中間的冒號需要用英文,且中間需要用英文空格隔開,配置項的開頭也要用空格隔開,否則在啟動es 的時候會報錯(如下)
其它一些配置參考:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/important-settings.html
-
cluster.name
當(dāng)前節(jié)點所屬集群名稱,多個節(jié)點如果要組成同一個集群,那么集群名稱一定要配置成相同。默認(rèn)值elasticsearch,生產(chǎn)環(huán)境建議根據(jù)ES集群的使用目的修改成合適的名字。不要在不同的環(huán)境中重用相同的集群名稱,否則,節(jié)點可能會加入錯誤的集群。 -
node.name
當(dāng)前節(jié)點名稱,默認(rèn)值當(dāng)前節(jié)點部署所在機器的主機名,所以如果一臺機器上要起多個ES節(jié)點的話,需要通過配置該屬性明確指定不同的節(jié)點名稱。 -
path.data
配置數(shù)據(jù)存儲目錄,比如索引數(shù)據(jù)等,默認(rèn)值 $ES_HOME/data,生產(chǎn)環(huán)境下強烈建議部署到另外的安全目錄,防止ES升級導(dǎo)致數(shù)據(jù)被誤刪除。 -
path.logs
配置日志存儲目錄,比如運行日志和集群健康信息等,默認(rèn)值 $ES_HOME/logs,生產(chǎn)環(huán)境下強烈建議部署到另外的安全目錄,防止ES升級導(dǎo)致數(shù)據(jù)被誤刪除。 -
bootstrap.memory_lock
配置ES啟動時是否進行內(nèi)存鎖定檢查,默認(rèn)值true。
ES對于內(nèi)存的需求比較大,一般生產(chǎn)環(huán)境建議配置大內(nèi)存,如果內(nèi)存不足,容易導(dǎo)致內(nèi)存交換到磁盤,嚴(yán)重影響ES的性能。所以默認(rèn)啟動時進行相應(yīng)大小內(nèi)存的鎖定,如果無法鎖定則會啟動失敗。
非生產(chǎn)環(huán)境可能機器內(nèi)存本身就很小,能夠供給ES使用的就更小,如果該參數(shù)配置為true的話很可能導(dǎo)致無法鎖定內(nèi)存以致ES無法成功啟動,此時可以修改為false。 -
network.host
節(jié)點對外提供服務(wù)的地址以及集群內(nèi)通信的ip地址,默認(rèn)值為當(dāng)前節(jié)點所在機器的本機回環(huán)地址127.0.0.1 和[::1],這就導(dǎo)致默認(rèn)情況下只能通過當(dāng)前節(jié)點所在主機訪問當(dāng)前節(jié)點。 -
http.port
配置當(dāng)前ES節(jié)點對外提供服務(wù)的http端口,默認(rèn) 9200 -
transport.port:
節(jié)點通信端口號,默認(rèn) 9300 -
discovery.seed_hosts
配置參與集群節(jié)點發(fā)現(xiàn)過程的主機列表,說白一點就是集群中所有節(jié)點所在的主機列表,可以是具體的IP地址,也可以是可解析的域名。 -
cluster.initial_master_nodes
配置ES集群初始化時參與master選舉的節(jié)點名稱列表,必須與node.name配置的一致。ES集群首次構(gòu)建完成后,應(yīng)該將集群中所有節(jié)點的配置文件中的cluster.initial_master_nodes配置項移除,重啟集群或者將新節(jié)點加入某個已存在的集群時切記不要設(shè)置該配置項。
四、修改 JVM 參數(shù)
修改es 目錄下的 config/jvm.options 配置文件,調(diào)整 jvm 對內(nèi)存大小
cd /root/elasticsearch-7.17.3
vim config/jvm.options
-Xms2g
-Xmx2g
配置建議:
Xms 和 Xmx 設(shè)置成一樣
Xmx 不要超過機器內(nèi)存的 50%
不要超過 30GB
關(guān)于配置的說明
四、啟動ElasticSearch服務(wù)
ES不允許使用root賬號啟動服務(wù),如果你當(dāng)前賬號是root,則需要創(chuàng)建一個專有賬戶
創(chuàng)建 es
用戶來啟動es:
adduser es
passwd es
chown es:es -R /root/elasticsearch-7.17.3
# 切換用戶
su es
#輸入對應(yīng)的密碼
#啟動 ElasticSearch, -d 為后臺啟動
bin/elasticsearch -d
五、啟動ElasticSearch服務(wù)常見錯誤解決方案
- max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] ES因為需要大量的創(chuàng)建索引文件,需要大量的打開系統(tǒng)的文件,所以我們需要解除linux系統(tǒng)當(dāng)中打開文件最大數(shù)目的限制,不然ES啟動就會拋錯:
#切換到root用戶
vim /etc/security/limits.conf
末尾添加如下配置:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
如下圖所示:
- max number of threads [1024] for user [es] is too low, increase to at least [4096] 無法創(chuàng)建本地線程問題,用戶最大可創(chuàng)建線程數(shù)太小。解決辦法:
vim /etc/security/limits.d/20-nproc.conf
# 改為如下配置:
* soft nproc 4096
- max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 最大虛擬內(nèi)存太小,調(diào)大系統(tǒng)的虛擬內(nèi)存。解決辦法:
vim /etc/sysctl.conf
#追加以下內(nèi)容:
vm.max_map_count=262144
#保存退出之后執(zhí)行如下命令:
sysctl -p
- the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured 缺少默認(rèn)配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一個參數(shù).
- discovery.seed_hosts: 集群主機列表
- discovery.seed_providers: 基于配置文件配置集群主機列表
- cluster.initial_master_nodes: 啟動時初始化的參與選主的node,生產(chǎn)環(huán)境必填
解決方法:
vim config/elasticsearch.yml
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
#或者指定配置單節(jié)點(集群單節(jié)點)
discovery.type: single-node
六、啟動成功
使用 jps -mlvV
查看Java運行中的進程,看到ES 相關(guān)的進程,則標(biāo)識啟動成功!文章來源:http://www.zghlxwxcb.cn/news/detail-721511.html
jps -mlvV
瀏覽器訪問:ip+端口如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-721511.html
到了這里,關(guān)于【centos7安裝ElasticSearch】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!