十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
测试环境介绍
我们搭建一个一主两从的集群环境,由于是测试虚拟机,我这边只在一台服务器上来演示主从环境。
操作系统 | 服务器ip | 端口号 | 是否主节点 |
---|---|---|---|
centos7 | 192.168.43.96 | 9200 | 是 |
centos7 | 192.168.43.96 | 9400 | 否 |
centos7 | 192.168.43.96 | 9500 | 否 |
一、主节点搭建
环境搭建详见https://blog.51cto.com/2262805/2441988文章,
elasticsearch.yml配置文件说明:
配置说明:
cluster.name 集群名称,相同名称为一个集群
node.name 节点名称,集群模式下每个节点名称唯一
node.master 当前节点是否可以被选举为master节点,是:true、否:false
node.data 当前节点是否用于存储数据,是:true、否:false
path.data 索引数据存放的位置
path.logs 日志文件存放的位置
bootstrap.memory_lock 需求锁住物理内存,是:true、否:false
bootstrap.system_call_filter SecComp检测,是:true、否:false
network.host 监听地址,用于访问该es
network.publish_host 可设置成内网ip,用于集群内各机器间通信
http.port es对外提供的http端口,默认 9200
discovery.seed_hosts es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
cluster.initial_master_nodes es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
http.cors.enabled 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.allow-origin "*" 表示支持所有域名
我们要只需要在之前的基础上,打开配置文件elasticsearch.yml,添加如下三个配置:
cluster.name: my-es #集群名称
node.name: node-master #主节点名称
node.master: true #当前节点是否可以被选举为master节点,是:true、否:false
discovery.seed_hosts: ["192.168.43.96", "192.168.43.96", "192.168.43.96"]#写入候选主节点的设备地址,在开启服务后可以被选为主节点
cluster.initial_master_nodes: ["node-1"] #初始化一个新的集群时需要此配置来选举master
修改完配置文件之后,只需要重新服务即可。
二、从节点配置
1.从节点1配置
我们再/mnt目录,解压之前下载的elasticsearch-7.3.0-linux-x86_64.tar.gz,并命名为elasticsearch2,并授权
chown -R testesuser:testes /mnt/elasticsearch2
进入/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 #启动从环境1 一定要用testesuser用户来执行
2.从节点二配置
在/mnt目录下,继续解压之前的包并命名为为elasticsearch3,并授权
`chown -R testesuser:testes /mnt/elasticsearch3`
进入/mnt/elasticsearch3目录config文件夹,修改elasticsearch.yml配置文件并保存。
和上面的配置基本一致,只是 http.port改为9500, node.name改为node-slave2
cd bin/
./elasticsearch #启动从环境2 一定要用testesuser用户来执行
三、Elasticsearch head验证主从环境
启动完成后,我们用Elasticsearch head查看,主从环境配置正常。
从图中可以看出五星代表是主节点,圆代表是从节点。
四、异常处理
因为我们配置了主从环境,单独启动一个主,不启动从,一直会出现此错误
master not discovered or elected yet, an election requires at least 2 nodes with ids from [X2P0yBfUSHSyGgjWWvBYeg, ZFIHple7RSijNOrRYIlPbQ, Xoew_otiTimsat1dgsYTDQ], have discovered,
只是因为我们只启动了主,从没有启动,我们只需要到从的启动路径启动从即可。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。