windows搭建elasticsearch集群

 windows环境搭建es集群,需要的安装包为:elasticsearch-7.14.1和分词器elasticsearch-analysis-ik-7.14.1

  安装包下载链接:

    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.1-windows-x86_64.zip

    https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.14.1

    注意:这里es和IK中文分词器的版本要一致,否则会出现不必要的报错。

搭建步骤:

一、首先将elasticsearch-7.14.1.zip压缩包解压到一个文件夹中,然后拷贝两份,这里用三个es节点搭建集群,分别编号命名:

 二、修改每个节点中config下的elasticsearch.yml配置文件

 1、elasticsearch-1的yml文件:

# =================es集群配置==============
# 
# 配置es集群的名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
cluster.name: my-application
#
# 节点名称
node.name: node-1
# 
#指定该节点是否有资格被选举成为node
node.master: true
# 
#指定该节点是否存储索引数据,默认为true
node.data: true
# 
# 设置绑定的IP地址,还有其他节点和该节点交互的IP地址,本机ip
network.host: 127.0.0.1
# 
# 指定http端口
http.port: 9200
# 
# 设置节点间交互的tcp端口,默认9300
transport.tcp.port: 9300
# 
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
# 因为另外两台节点的端口自会设置为9301和9302,所以写入两台es的完整地址
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
# 
# 初始化主节点,在启动集群时,指定一个指定node-1为主节点
cluster.initial_master_nodes: node-1
# 
# 如果需要使用head,那么需要解决跨域问题,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

2、elasticsearch-2的yml文件:

# =================es集群配置==============
# 
# 配置es集群的名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
cluster.name: my-application
#
#
# 节点名称
node.name: node-2
#
#指定该节点是否有资格被选举成为node
node.master: true
#
#指定该节点是否存储索引数据,默认为true
node.data: true
#
# 设置绑定的IP地址,还有其他节点和该节点交互的IP地址,本机ip
network.host: 127.0.0.1
#
# 指定http端口
http.port: 9201
#
# 设置节点间交互的tcp端口,默认9300
transport.tcp.port: 9301
#
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
# 因为另外两台节点的端口自会设置为9301和9302,所以写入两台es的完整地址
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
#
# 初始化主节点
cluster.initial_master_nodes: node-1
#
# 如果需要使用head,那么需要解决跨域问题,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

3、elasticsearch-3的yml文件:

# =================es集群配置==============
# 
# 配置es集群的名称,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群
cluster.name: my-application
#
# 节点名称
node.name: node-3
# 
#指定该节点是否有资格被选举成为node
node.master: true
# 
#指定该节点是否存储索引数据,默认为true
node.data: true
# 
# 设置绑定的IP地址,还有其他节点和该节点交互的IP地址,本机ip
network.host: 127.0.0.1
# 
# 指定http端口
http.port: 9202
# 
# 设置节点间交互的tcp端口,默认9300
transport.tcp.port: 9302
# 
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
# 因为另外两台节点的端口自会设置为9301和9302,所以写入两台es的完整地址
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
# 
# 初始化主节点
cluster.initial_master_nodes: node-1
# 
# 如果需要使用head,那么需要解决跨域问题,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

三、逐一启动每个es节点,运行每个节点下bin目录中的elasticsearch.bat文件

elasticsearch-1:

 elasticsearch-2:

  elasticsearch-3:

若能看到以上信息,则集群启动正常。

若启动过程中,出现闪退、却又看不到报错日志的情况,此时可以通过cmd命令框执行bat启动文件,就可以看到报错信息了,然后进行对应的修改即可

四、 通过postman访问集群,进行测试

  访问集群的任何一个节点(只需切换端口号即可),此处访问节点node-2进行测试,

  输入地址localhost:9201/_cat/health?v      查询集群的健康状态

 若结果为如下图,则集群已经正常可以使用,其中status为green表示集群正常,yello表示集群数据可以正常使用,但是部分备份分片有问题,但不影响正常使用。

 五、集群启动正常了,接下来配置中文分词器,将已经下载好的IK安装包解压到每个节点的plugin中,如下

 注意,每个节点下都要放一份,然后重新启动es集群,然后进行分词测试

用postman访问 localhost:9201/_analyze

请求体中的参数analyzer :ik_max_word  是指定分词的模式,

  ik_max_word  :最大程度的分词,分词的粒度比较细

  ik_smart  : 分词的粒度要粗一下,可以自行测试一下

 text:将要进行分词的文本

分词结果如下:

到此,window环境的es集群搭建完毕,es的一些常用操作命令大家可以自行学习一下。

原文地址:https://www.cnblogs.com/zhangzhiyong-/p/15327597.html