感興趣的話大家可以關(guān)注一下公眾號(hào) : 猿人劉先生 , 歡迎大家一起學(xué)習(xí) , 一起進(jìn)步 , 一起來交流吧!
1.Elasticsearch
Elasticsearch(簡稱ES) 是一個(gè)分布式 , RESTful風(fēng)格的搜索和數(shù)據(jù)分析引擎 , 使用java開發(fā)并且是當(dāng)前最流行的開源的企業(yè)級(jí)搜索引擎,能夠達(dá)到近實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便。
客戶端支持Java、.NET(C#)、PHP、Python、Ruby等多種語言。
官方網(wǎng)站: https://www.elastic.co/
下載地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
2.單節(jié)點(diǎn)下載&安裝
演示版本為7.17.3 運(yùn)行Elasticsearch,需安裝并配置JDK
各個(gè)版本對(duì)Java的依賴 : https://www.elastic.co/support/matrix#matrix_jvm Elasticsearch
5需要Java 8以上的版本 , Elasticsearch 從6.5開始支持Java 11 , 7.0開始,內(nèi)置了Java環(huán)境
2.1.下載
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
將下載下來的壓縮包放到linux安裝的文件下
2.2 解壓
tar zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz
2.3 修改配置文件
cd elasticsearch-7.17.3/config
vim elasticsearch.yml
#開啟遠(yuǎn)程訪問
network.host: 0.0.0.0
2.4 修改jvm參數(shù)
# 建議Xms和Xmx設(shè)置成一樣 , Xmx不要超過機(jī)器的50% ,不要超過30G , jvm.options文件在config目錄下
vim jvm.options
2.5 啟動(dòng)
# ES不允許使用Root賬號(hào)啟動(dòng) , 如果是Root用戶則需要新建一個(gè)用戶
# 為elaticsearch創(chuàng)建用戶并賦予相應(yīng)權(quán)限
adduser es
passwd es
chown -R es:es elasticsearch-7.17.3
# 非root用戶啟動(dòng)
bin/elasticsearch
# 后臺(tái)啟動(dòng)
bin/elasticsearch -d
2.6 驗(yàn)證
啟動(dòng)之后訪問http://ip:9200
2.7 安裝ik分詞器插件
#查看已安裝插件
bin/elasticsearch-plugin list
#安裝插件
bin/elasticsearch-plugin install analysis-icu
#刪除插件
bin/elasticsearch-plugin remove analysis-icu
安裝和刪除完之后都需要重啟es才可以生效
離線安裝 ik分詞器
本地下載相應(yīng)的插件,解壓,然后手動(dòng)上傳到elasticsearch的plugins目錄,然后重啟ES實(shí)例就可以了。
比如ik中文分詞插件:https://github.com/medcl/elasticsearch-analysis-ik (下載zip文件)
2.8 測(cè)試分詞器
POST _analyze
{
"analyzer":"icu_analyzer",
"text":"中華人民共和國"
}
#ES的默認(rèn)分詞設(shè)置是standard,會(huì)單字拆分
POST _analyze
{
"analyzer":"standard",
"text":"中華人民共和國"
}
#ik_smart:會(huì)做最粗粒度的拆
POST _analyze
{
"analyzer": "ik_smart",
"text": "中華人民共和國"
}
#ik_max_word:會(huì)將文本做最細(xì)粒度的拆分
POST _analyze
{
"analyzer":"ik_max_word",
"text":"中華人民共和國"
}
創(chuàng)建索引時(shí)可以指定IK分詞器作為默認(rèn)分詞器
PUT /es_db
{
"settings" : {
"index" : {
"analysis.analyzer.default.type": "ik_max_word"
}
}
}
3.啟動(dòng)ES服務(wù)常見錯(cuò)誤解決方案
3.1 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
ES因?yàn)樾枰罅康膭?chuàng)建索引文件,需要大量的打開系統(tǒng)的文件,所以我們需要解除linux系統(tǒng)當(dāng)中打開文件最大數(shù)目的限制,不然ES啟動(dòng)就會(huì)拋錯(cuò)
#切換到root用戶
vim /etc/security/limits.conf
末尾添加如下配置:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
3.2 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
3.3 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vim /etc/sysctl.conf
追加以下內(nèi)容:
vm.max_map_count=262144
保存退出之后執(zhí)行如下命令:
sysctl -p
3.4 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中的一個(gè)參數(shù).
1.discovery.seed_hosts: 集群主機(jī)列表
2.discovery.seed_providers: 基于配置文件配置集群主機(jī)列表
3.cluster.initial_master_nodes: 啟動(dòng)時(shí)初始化的參與選主的node,生產(chǎn)環(huán)境必填
vim config/elasticsearch.yml
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
#或者 單節(jié)點(diǎn)(集群單節(jié)點(diǎn))
discovery.type: single-node
3.5 You must address the points described in the following [1] lines before starting Elasticsearch.
# 配置這兩個(gè)參數(shù)即可
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
3.6 failed; error=‘Not enough space’
修改上面的jvm參數(shù)即可
4.三節(jié)點(diǎn)es集群搭建
本集群基于上面的單節(jié)點(diǎn)搭建
4.1 修改hosts文件
切換到root用戶 , 執(zhí)行以下操作
vim /etc/hosts
192.168.154.146 cluster-node-146
192.168.154.147 cluster-node-147
192.168.154.148 cluster-node-148
4.2 修改elasticsearch.yml
# 指定集群名稱3個(gè)節(jié)點(diǎn)必須一致
cluster.name: es‐cluster
#指定節(jié)點(diǎn)名稱,每個(gè)節(jié)點(diǎn)名字唯一
node.name: cluster-node-146
#是否有資格為master節(jié)點(diǎn),默認(rèn)為true
node.master: true
#是否為data節(jié)點(diǎn),默認(rèn)為true
node.data: true
# 綁定ip,開啟遠(yuǎn)程訪問,可以配置0.0.0.0
network.host: 0.0.0.0
#指定web端口
#http.port: 9200
#指定tcp端口
#transport.tcp.port: 9300
#用于節(jié)點(diǎn)發(fā)現(xiàn)
discovery.seed_hosts: ["cluster-node-146", "cluster-node-147", "cluster-node-148"]
#7.0新引入的配置項(xiàng),初始仲裁,僅在整個(gè)集群首次啟動(dòng)時(shí)才需要初始仲裁。
#該選項(xiàng)配置為node.name的值,指定可以初始化集群節(jié)點(diǎn)的名稱
cluster.initial_master_nodes: ["cluster-node-146", "cluster-node-147", "cluster-node-148"]
#解決跨域問題
http.cors.enabled: true
http.cors.allow‐origin: "*"
4.3 啟動(dòng)
每個(gè)節(jié)點(diǎn)的啟動(dòng)方式和單節(jié)點(diǎn)啟動(dòng)方式相同文章來源:http://www.zghlxwxcb.cn/news/detail-780101.html
4.4 驗(yàn)證
訪問http://ip:9200/_cat/nodes?文章來源地址http://www.zghlxwxcb.cn/news/detail-780101.html
到了這里,關(guān)于服務(wù)搭建篇(七) Elasticsearch單節(jié)點(diǎn)部署以及多節(jié)點(diǎn)集群部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!