前言
本篇文章内容不多,主要介绍一下win10环境下单机搭建ElasticSearch(下文简称ES)集群的具体步骤和可能遇到的小坑,希望可以给到各位读者参考
环境准备:
- JDK1.8+
- 本地已经下载好ElasticSearch
- 可视化视图插件Head插件或者cerebro
一、配置多个节点参数
我们将解压出来的ES文件夹再复制2份并重新命名,这样我们本地就有3份ES的解压文件
这里要特别注意,需要检查一下复制出来的两份文件夹中有没有data目录,有的话一定要删除!!!否则可能出现搭建集群失败的结果!!!
(一)配置JVM参数(可选)
ES默认占用的堆内存是1G,如果本地硬件配置较低启动可能会很卡,这里建议改一下ES的虚拟机配置。如果你配置高不在意这些的话,可以忽略。
JVM配置文件路径
将堆内存配置修改为下面的配置:
-Xms256m
-Xmx256m
其他两份ES副本目录也同样这样修改
(二)修改ES的核心配置文件
ES核心配置文件路径新增如下配置:
# 下面这两个配置是配合head插件使用的,防止因为跨域问题导致的插件失效
http.cors.enabled: true
http.cors.allow-origin: "*"
# 配置集群名称
cluster.name: elasticsearch
# 配置节点名称
node.name: master
# 配置节点ip地址
network.host: 127.0.0.1
# 配置节点端口
http.port: 9200
相对应的,修改其他两份配置文件的集群配置
# 第一个从节点
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: elasticsearch
node.name: slave1
network.host: 127.0.0.1
http.port: 9210
# 第二个从节点
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: elasticsearch
node.name: slave2
network.host: 127.0.0.1
http.port: 9220
二、启动和验证集群是否搭建成功
(一)启动集群
依次启动主节点master和两个从节点slave1、slave2
指定对应的启动脚本
当启动slave1、slave2两个从节点的时候,我们可以发现主节点的打印台有对应的信息输出
master添加从节点信息输出
(二)验证集群是否搭建成功
方法1:使用ES原生API:localhost:9200/_cat/nodes?v
方法1方法2:使用可视化插件,这里的话演示cerebro
1. 将下载好的插件解压出来后,进入bin目录,执行启动脚本
cerebro启动路径2. 访问localhost:9000
cerebro连接ES连接成功后,我们就可以看到我们的集群状态啦
cerebro查看集群状态
最后,再贴一下一些常用的配置信息
# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: myes
# 设置节点名称,集群内节点名称必须唯一。
node.name: node1
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
path.data: /opt/elasticsearch/data
# 日志文件存放的位置
path.logs: /opt/elasticsearch/logs
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: true
# 监听地址,用于访问该es
network.host: 172.16.100.1
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.minimum_master_nodes: 2
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["172.16.100.1:9300", "172.16.100.2:9300", "172.16.100.3:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2", "node3"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"
action.destructive_requires_name: true
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
xpack.security.enabled: false
xpack.monitoring.enabled: true
xpack.graph.enabled: false
xpack.watcher.enabled: false
xpack.ml.enabled: false
参考文章:
window下安装ElasticSearch7.x集群及Kibana
https://blog.csdn.net/xiaopihai1hao/article/details/106869954
网友评论