測試環(huán)境介紹
我們搭建一個一主兩從的集群環(huán)境,由于是測試虛擬機,我這邊只在一臺服務(wù)器上來演示主從環(huán)境。
創(chuàng)新互聯(lián)公司專注于恭城企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城開發(fā)。恭城網(wǎng)站建設(shè)公司,為恭城等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
操作系統(tǒng) | 服務(wù)器ip | 端口號 | 是否主節(jié)點 |
---|---|---|---|
centos7 | 192.168.43.96 | 9200 | 是 |
centos7 | 192.168.43.96 | 9400 | 否 |
centos7 | 192.168.43.96 | 9500 | 否 |
一、主節(jié)點搭建
環(huán)境搭建詳見https://blog.51cto.com/2262805/2441988文章,
elasticsearch.yml配置文件說明:
配置說明:
cluster.name 集群名稱,相同名稱為一個集群
node.name 節(jié)點名稱,集群模式下每個節(jié)點名稱唯一
node.master 當(dāng)前節(jié)點是否可以被選舉為master節(jié)點,是:true、否:false
node.data 當(dāng)前節(jié)點是否用于存儲數(shù)據(jù),是:true、否:false
path.data 索引數(shù)據(jù)存放的位置
path.logs 日志文件存放的位置
bootstrap.memory_lock 需求鎖住物理內(nèi)存,是:true、否:false
bootstrap.system_call_filter SecComp檢測,是:true、否:false
network.host 監(jiān)聽地址,用于訪問該es
network.publish_host 可設(shè)置成內(nèi)網(wǎng)ip,用于集群內(nèi)各機器間通信
http.port es對外提供的http端口,默認(rèn) 9200
discovery.seed_hosts es7.x 之后新增的配置,寫入候選主節(jié)點的設(shè)備地址,在開啟服務(wù)后可以被選為主節(jié)點
cluster.initial_master_nodes es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉master
http.cors.enabled 是否支持跨域,是:true,在使用head插件時需要此配置
http.cors.allow-origin "*" 表示支持所有域名
我們要只需要在之前的基礎(chǔ)上,打開配置文件elasticsearch.yml,添加如下三個配置:
cluster.name: my-es #集群名稱
node.name: node-master #主節(jié)點名稱
node.master: true #當(dāng)前節(jié)點是否可以被選舉為master節(jié)點,是:true、否:false
discovery.seed_hosts: ["192.168.43.96", "192.168.43.96", "192.168.43.96"]#寫入候選主節(jié)點的設(shè)備地址,在開啟服務(wù)后可以被選為主節(jié)點
cluster.initial_master_nodes: ["node-1"] #初始化一個新的集群時需要此配置來選舉master
修改完配置文件之后,只需要重新服務(wù)即可。
二、從節(jié)點配置
1.從節(jié)點1配置
我們再/mnt目錄,解壓之前下載的elasticsearch-7.3.0-linux-x86_64.tar.gz,并命名為elasticsearch2,并授權(quán)
chown -R testesuser:testes /mnt/elasticsearch2
進(jìn)入/mnt/elasticsearch2目錄config文件夾,修改elasticsearch.yml配置文件并保存。
network.host: 192.168.43.96
http.port: 9400
discovery.seed_hosts: ["192.168.43.96", "192.168.43.96", "192.168.43.96"]
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: my-es
node.name: node-slave1
cd bin/
./elasticsearch #啟動從環(huán)境1 一定要用testesuser用戶來執(zhí)行
2.從節(jié)點二配置
在/mnt目錄下,繼續(xù)解壓之前的包并命名為為elasticsearch3,并授權(quán)
`chown -R testesuser:testes /mnt/elasticsearch3`
進(jìn)入/mnt/elasticsearch3目錄config文件夾,修改elasticsearch.yml配置文件并保存。
和上面的配置基本一致,只是 http.port改為9500, node.name改為node-slave2
cd bin/
./elasticsearch #啟動從環(huán)境2 一定要用testesuser用戶來執(zhí)行
三、Elasticsearch head驗證主從環(huán)境
啟動完成后,我們用Elasticsearch head查看,主從環(huán)境配置正常。
從圖中可以看出五星代表是主節(jié)點,圓代表是從節(jié)點。
四、異常處理
因為我們配置了主從環(huán)境,單獨啟動一個主,不啟動從,一直會出現(xiàn)此錯誤
master not discovered or elected yet, an election requires at least 2 nodes with ids from [X2P0yBfUSHSyGgjWWvBYeg, ZFIHple7RSijNOrRYIlPbQ, Xoew_otiTimsat1dgsYTDQ], have discovered,
只是因為我們只啟動了主,從沒有啟動,我們只需要到從的啟動路徑啟動從即可。